我偶然发现了一个我无法解决的正则表达式问题。我想匹配配置文件的一部分,但前提是它包含一个特殊的单词:
{{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}}
在这里我想匹配包含“特殊词”的整个块
{{START}}
{{CONF1}}blah blah ..{{ENDCONF1}}
{{CONF2}}blah specialword ..{{ENDCONF2}}
{{END}}
通过玩一些模式,我实现了直接相反的环视“所有不包含空间词”,但不是我想要的相反:/
{{START}}((?!specialword)[\s\S])*?{{END}}
说清楚我想要
{{START}}[\s\S]*?{{END}}
匹配的部分在哪里
[\s\S]*?
必须包含“特殊词”以匹配整个表达式