崇高的文本正则expression式不检测多行标签
我在这里有这个正则expression式。
\[sometag\](.*)\[/sometag\]
这应该是抓住[sometag]
标签包围的文字。 它适用于这些标签中包含的单行信息,如string[sometag]this is a bit of text[/sometag]
。 但是它不适用于跨越多行的文本。
[sometag] here is more text it spans more than one line [/sometag]
由于某些原因,Sublime text的正则expression式找不到多行代码。 我想知道这是一个Sublime Text的问题,一个可切换的选项,或者只是我个人对正则expression式的无能。
在开始时,使用dotall修饰符(?s)
使点匹配换行符。
(?s)\[sometag\](.*?)\[\/sometag\]
DEMO
如果出于某些原因修改点模式是不可接受的,那么您可以这样做:
[sometag](.|\n)+?[/sometag]