我想在webstorm ide(基于java)的项目中进行正则表达式搜索,并匹配包含<panel ........ >
的某些模板文件中的行,但不包括具有单词narrow
的{{1}},{开场medium
和结束wide
之间的{1}}或<panel
。
文件是非常结构化的,我们自己的内部格式,所以我们确切地知道我们要解析的内容,而不必担心被具有冲突值的属性绊倒。
我知道像>
这样的东西会让我感兴趣的标签,但我不知道如何排除那些已经有价值的标签。
答案 0 :(得分:3)
否定前瞻:
<panel(?!narrow)([^>]+)?
这可以扩展到排除中/宽。
答案 1 :(得分:2)
通常可以通过对每个字符进行增量预测测试来完成 因为它匹配,直到你到达终点。
# <panel(?:(?!narrow|medium|wide)[^>])+>
<
panel
(?:
(?!
narrow
| medium
| wide
)
[^>]
)+
>