У меня есть это регулярное выражение;
\[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 не распознает теги в нескольких строках. Я хочу знать, проблема ли это с Sublime Text, переключаемой опцией или просто моей личной некомпетентностью с регулярными выражениями.
regex
tags
sublimetext
Maurdekye
источник
источник
?
after*
будет делать нежадный матч. Рассмотрим[b]foo[/b]foo[b]bar[/b]
как пример.\[b\].*\[\/b\]
будет соответствовать целому от начала b до последнего закрытия b.?
в этом regex101.com/r/gI0xC3/2Если изменение режима точки по каким-либо причинам недопустимо, вы можете принять это:
источник
(.|\n)+?
если у вас есть доступ к модификатору DOTALL. Если вы не можете использовать(?s)
в каком-либо фальворе, используйте[\s\S]
/[\d\D]
/[\w\W]
, но не предложенный здесь шаблон чередования. Этот шаблон крайне неэффективен и может легко привести к тайм-ауту.[\s\S]
, но на первый взгляд(.|\n)
может показаться эквивалентным? Это связано с совпадающими группами? Но тогда(?:.|\n)
было бы то же самое?