4
我偶然发现了一个我无法解决的正则表达式问题。我想匹配一个配置文件的一部分,但只有当它包含一个特殊的词:如果匹配包含特殊字匹配的正则表达式
{{START}}
{{CONF1}}blah blah ..{{ENDCONF1}}
{{CONF2}}blah blah ..{{ENDCONF2}}
{{END}}
{{START}}
{{CONF1}}blah blah ..{{ENDCONF1}}
{{CONF2}}blah specialword ..{{ENDCONF2}}
{{END}}
{{START}}
{{CONF1}}blah blah ..{{ENDCONF1}}
{{CONF2}}blah blah ..{{ENDCONF2}}
{{END}}
在这里,我想其中包含“specialword”
{{START}}
{{CONF1}}blah blah ..{{ENDCONF1}}
{{CONF2}}blah specialword ..{{ENDCONF2}}
{{END}}
通过玩弄整个块匹配一些图案我实现了与lookarounds直接opposit“所有不包含spacialword”,而不是opposit,我想:/
{{START}}((?!specialword)[\s\S])*?{{END}}
要清楚,我想
{{START}}[\s\S]*?{{END}}
其中符合
[\s\S]*?
部分必须包含 “specialword” 相匹配的整个表达式
这是一个XML文件吗?如果没有,坚持用'({{START}} [\ s \ S] *?specialword [\ s \ S] *?{{END}})' –
@RubensFarias:这将无法正常工作。在上面的例子中,它将匹配前两个组。 –
@RubensFarias:我做了同样的错误;) –