Подтвердить что ты не робот

Существенное текстовое регулярное выражение, не обнаруживающее многострочные теги

У меня есть это регулярное выражение,

\[sometag\](.*)\[/sometag\]

Предполагается, что текст должен быть окружен тегом [sometag]. Он работает для однострочной информации, содержащейся в этих тегах, например, в строке [sometag]this is a bit of text[/sometag]. Но он не работает над текстом, который охватывает несколько строк, например:

[sometag] here is more text

it spans more than one line [/sometag]

По какой-то причине Sublime text regex finder не распознает теги на нескольких строках. Я хочу знать, если это проблема с Sublime Text, переключаемый параметр или просто моя личная некомпетентность с регулярными выражениями.

4b9b3361

Ответ 1

В начале используйте модификатор dotall (?s) чтобы точка соответствовала символам новой строки.

(?s)\[sometag\](.*?)\[\/sometag\]

DEMO

Ответ 2

Если изменение точечного режима недопустимо по некоторым причинам, вы можете принять следующее:

[sometag](.|\n)+?[/sometag]