我有一个包含许多注释标记的文本块:
Lorem ipsum dolor sit amet<--this is a comment-->, consectetur adipiscing<--replace=>with this--> elit. Maecenas massa ip<---123=<--=>+456>=->-->sum, ultrices quis semper porttitor, cursus at lectus.
我想编写一个正则表达式来捕获<--xxx=>yyy-->
标记的所有实例的内容。从上面的文字中,这将返回[('replace', 'with this'), ('-123=<--', '+456>=->')]
。问题是文本和注释可以包含任意数量的任何字符组合(<--
,-->
和=>
的注释标记分隔符除外。
是否可以使用单个正则表达式完成此操作?我正在使用Python来测试它,但正则表达式应该可以在多个平台上运行。
答案 0 :(得分:2)
根据您更新的匹配要求,这应该是一个正常工作的正则表达式:
/<--((?:[^=-]|(?:=(?!>)|-(?!->)))+)=>((?:[^=-]|(?:=(?!>)|-(?!->)))+)-->/g
这会过滤捕获组中不允许的分隔符-->
,<--
,=>
。请注意全局匹配的g
修饰符。为每个匹配提取两个组以获得所需的结果。
(RegExr)