0

我有一个包含许多评论标签的文本块:

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 进行测试,但正则表达式应该可以在多个平台上运行。

4

1 回答 1

2

根据您更新的匹配要求,这应该是一个有效的正则表达式:

/<--((?:[^=-]|(?:=(?!>)|-(?!->)))+)=>((?:[^=-]|(?:=(?!>)|-(?!->)))+)-->/g

这会过滤捕获组中不允许的分隔符, -->。注意全局匹配的修饰符。为每个匹配提取两个组以获得所需的结果。<--=>g

(正则表达式)

于 2013-01-17T22:46:23.500 回答