正则表达式:查找不以X开头的字符串

时间:2009-08-12 06:46:23

标签: regex

我对正则表达式完全没有希望......

我有一个名为#addButton的Velocimacro,我有一个名为addButton()的JS函数。现在我想找到调用JS函数的所有地方。所以我需要搜索“addButton”,其中“addButton”以哈希键开头。

有什么想法吗?

2 个答案:

答案 0 :(得分:24)

我不知道Velocimacro是什么(从另一个答案来看,我猜“addButton”会出现在它自己的行上吗?),但找到“addButton”这个词的确定方法不是{ {1}}如下:

#

它会:

  1. /(?<!#)\baddButton\b/ (?)
    • 确保当前位置不在(?<!#)(井号)
    • 之前
  2. # (?)
    • 确保当前位置是单词边界(在这种情况下,它确保前一个字符不是单词字符,而下一个字符是)
  3. \b (?)
    • 匹配“addButton”
  4. addButton (?)
    • 确保当前位置有单词边界。这避免匹配“addButtonNew”之类的东西(因为“addButton”和“New”之间没有单词边界)
  5. 与这个正则表达式的区别在于另一个是不会消耗“addButton”之前的字符。

    了解正则表达式的一个很好的资源是regular-expressions.info。单击上面列表中的(?)链接,获取指向正则表达式部分的相关页面的链接。

答案 1 :(得分:12)

/([^#]|^)addButton/

它将匹配“addButton”前面带有“#”或字符串开头的每个字符串。