代码之家  ›  专栏  ›  技术社区  ›  peirix

regex:查找不以x开头的字符串

  •  14
  • peirix  · 技术社区  · 15 年前

    我对正则表达式完全绝望…

    我有一个叫维洛西马克的 #addButton ,我有一个名为 addButton() .现在我想找到所有调用JS函数的地方。所以我需要搜索“addbutton”,其中“addbutton” 从哈希键开始。

    有什么想法吗?

    2 回复  |  直到 7 年前
        1
  •  12
  •   Adam Byrtek    15 年前
    /([^#]|^)addButton/
    

    它将匹配“addbutton”所在的每个字符串 以“”或字符串开头。

        2
  •  24
  •   Scott Coldwell    7 年前

    我不知道什么是Velocimacro(从另一个答案来看,我猜“AddButton”会出现在自己的行中?)但是找到“addbutton”这个词的方法肯定不会被 # 如下所示:

    /(?<!#)\baddButton\b/
    

    它将:

    1. (?<!#) (?)
      • 确保当前位置不被 γ (散列标记)
    2. \b (?)
      • 确保当前位置是单词边界(在本例中,它确保前一个字符不是单词字符,下一个字符是)
    3. addButton (?)
      • 匹配“添加按钮”
    4. \b (?)
      • 确保在当前位置有单词边界。这样可以避免匹配“addbuttonNew”(因为“addbutton”和“new”之间没有单词边界)

    与这个正则表达式和另一个不同的是,这个表达式不会使用“addbutton”之前的字符。

    学习正则表达式的一个好资源是 regular-expressions.info . 单击(?)在上面的列表中,链接到regex该部分的相关页面。