正则表达式匹配开始和结束分隔符之间不存在单词的位置

时间:2015-02-26 16:44:59

标签: regex

我想在webstorm ide(基于java)的项目中进行正则表达式搜索,并匹配包含<panel ........ >的某些模板文件中的行,但不包括具有单词narrow的{​​{1}},{开场medium和结束wide之间的{1}}或<panel

文件是非常结构化的,我们自己的内部格式,所以我们确切地知道我们要解析的内容,而不必担心被具有冲突值的属性绊倒。

我知道像>这样的东西会让我感兴趣的标签,但我不知道如何排除那些已经有价值的标签。

2 个答案:

答案 0 :(得分:3)

否定前瞻:

<panel(?!narrow)([^>]+)?

这可以扩展到排除中/宽。

答案 1 :(得分:2)

通常可以通过对每个字符进行增量预测测试来完成 因为它匹配,直到你到达终点。

 # <panel(?:(?!narrow|medium|wide)[^>])+>

 <
 panel
 (?:
      (?!
           narrow
        |  medium
        |  wide
      )
      [^>] 
 )+
 >