我正在尝试解析短代码:
[shortcode]the content inside[/shortcode]
这很好,因为它只有一行,但只要我有多行,我就无法捕获该组:
[shortcode]
this is
the content
[/shortcode]
我匹配内联文字的当前表达式为:\[([^\]]*?)\](.*)\[\/\1\]
我无法修改(.*)
部分以捕获包括新行在内的所有内容。
这将在javascript中使用,因此我无法使用/s
修饰符。
这里可以看到一个例子:http://regex101.com/r/nZ1hZ4
答案 0 :(得分:1)
如果您想捕获所有内容,请使用[^]
代替.
\[([^\]]*?)\]([^]*)\[\/\1\]
答案 1 :(得分:1)
由于Javascript不支持DOTALL标记,因此您可以使用[\s\S]
代替DOT
来匹配新行:
\[([^\]]*?)\]([\s\S]*?)\[\/\1\]