У меня есть регулярное выражение, которое было в порядке, но, как оказалось, в некоторых ситуациях оно не работает
Следите за предварительным просмотром сообщений, потому что редактор сообщений делает некоторые хитрые вещи с "\"
[? \ [] [\ ^% # \ $ \ * @ \ -;] * [\ ^% # \ $ \ * @ \ -;.?] [\]]
Его задача - найти шаблон, который в общем случае выглядит так
[ABA]
- A - символ из множества ^,%, #, $, *, @, -,;
- B - немного текста
- [и] включены в шаблон
Ожидается, что
найдет все вхождения этого шаблона в тестовой строке
Черная лиса [# sample1 #] [% sample2%] - [# sample3 #] ест блоки.
но вместо ожидаемого списка матчей
- "[# sample1 #]"
- "[% sample2%]"
- "[# sample3 #]"
Я понял
- "[# sample1 #]"
- "[% sample2%]"
- "- [# sample3 #]"
И, похоже, эта проблема будет возникать и с другими символами в наборе "A". Так может кто-нибудь предложить изменения в моем регулярном выражении, чтобы он работал так, как мне нужно?
и менее важная вещь, как заставить мое регулярное выражение исключать шаблоны, которые выглядят так
[ABC]
- A - символ из множества ^,%, #, $, *, @, -,;
- B - немного текста
- C - символ из множества ^,%, #, $, *, @, - ,; кроме A
- [и] включены в шаблон
например
[$ sample1 #] [% sample2 @] [% sample3;]
заранее спасибо
MTH