Sublime Text正则表达式未检测到多行标记

时间:2014-09-30 15:13:42

标签: regex tags sublimetext

我在这里有这个正则表达式;

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

应该捕获[sometag]标记所包围的文本。它适用于这些标记中包含的单行信息,例如字符串[sometag]this is a bit of text[/sometag]。但它不适用于跨越多行的文本,例如:

[sometag] here is more text

it spans more than one line [/sometag]

出于某种原因,Sublime文本的正则表达式查找程序无法识别多行中的标记。我想知道这是Sublime Text的一个问题,一个可以切换的选项,还是我个人对正则表达式的无能。

2 个答案:

答案 0 :(得分:194)

一开始,使用dotall修饰符(?s)使点与新行字符匹配。

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

DEMO

答案 1 :(得分:9)

如果出于某些原因修改了dot的模式是不允许的,你可以这样做:

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