2015-09-14 4 views
0

У меня есть строка, как этотRegex найти строку между с особым характером

abc{[data1]}efg{[data2]} 

мне нужно регулярное выражение, которое возвращает data1 и data2.

Я пробовал Regex(@"{[\w*]}"), но не надеялся.

+0

Не уверен, какой язык программирования вы используете, но '/ \ [([az] * [1-9] *) \]/g' сделает трюк. Я бы рекомендовал использовать [regex101.com] (https://regex101.com/) для тестирования регулярных выражений. – halfzebra

ответ

1

Вам нужно бежать специальные регулярные выражения символов, в противном случае [\w*] трактуется как 1 символ слова или звездочки:

@"\{\[\w*\]}" 
^^ ^

См demo

+0

Я думаю, вы используете C#, верно? Затем вы можете использовать ['@" {\ [\ w *]} "'] (http://regexstorm.net/tester?p=%7b%5c%5b%5cw*%5d%7d&i=abc% 7b% 5bdata1% 5d% 7defg% 7b% 5bdata2% 5d% 7d), так как механизм регулярных выражений C# достаточно умен, чтобы понять, что '{', '}' и ']' должны быть сопоставлены буквально. –