>假设我有一个这样的html文档:
<!--FOO-->
some text
<!--BAR-->
some other text
<!--FOO-->
some more text
<!--BAR-->
如何编写与两种情况匹配的 JavaScript 正则表达式
<!--FOO-->anytext<!--BAR-->
但不是中间的文本(在这种情况下是"其他一些文本"(。
我认为会起作用的正则表达式是
/<!--FOO-->(.|n)*<!--BAR-->/
但它也抓住了"其他一些文本"。
你需要非贪婪运算符?
,像这样:
/<!--FOO-->(.|n)*?<!--BAR-->/
演示
一个稍微好一点的版本是这样的,让你实际捕获注释之间的文本:
/<!--FOO-->((?:n|.)*?)<!--BAR-->/
演示
也就是说,使用正则表达式解析 HTML 很少有好结果......有关该问题的经典解释,请参阅此处。你最好使用库,除非你的解析仅限于你的问题中非常简单的情况。