我希望将内容开头与标记匹配,并以标记
结束我使用了match(/\<block\>(.*)\<\/block>/g);
但它仅适用于一行<block>Data</block>
不适合他人
<block>Data
can be here
</block>
请提出任何建议
答案 0 :(得分:3)
Javascript
在其正则表达式引擎中没有DOTALL标志。
但Javascript使点匹配换行的方法是:
string.match(/<block>([\s\S]*?)<\/block>/ig);
[\s\S]
代替.
匹配任何字符,包括换行符。
答案 1 :(得分:1)
您必须将.
替换为[\s\S]
,因为该点与换行符不匹配。
/<block>([\s\S]*?)<\/block>/g
如果没有嵌套其他标签,则可以使用[^<]*
:
/<block>([^<]*)<\/block>/g
但是像这样的代码:
<block> abcd
<block>efgh</block>
</block>
将以第一个模式失败,并且您无法使用javascript正则表达式解决问题。