说我有一个像这样的HTML文档:
<!--FOO-->
some text
<!--BAR-->
some other text
<!--FOO-->
some more text
<!--BAR-->
如何编写与
两种情况相匹配的javascript正则表达式<!--FOO-->anytext<!--BAR-->
但不是介于两者之间的文本(在这种情况下为“其他一些文字”)。
我认为可行的正则表达式是
/<!--FOO-->(.|\n)*<!--BAR-->/
但它也会捕捉到“其他一些文字”。
答案 0 :(得分:2)
您需要非贪婪的运算符?
,如下所示:
/<!--FOO-->(.|\n)*?<!--BAR-->/
稍微好一点的版本就是这样,让你实际捕捉评论之间的文字:
/<!--FOO-->((?:\n|.)*?)<!--BAR-->/
也就是说,使用正则表达式解析HTML很少结束...... See here for the classic explanation of the problem。你最好使用一个库,除非你的解析仅限于你问题中非常简单的情况。