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

pei*_*rix 15 regex

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

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

有任何想法吗?

Bli*_*ixt 24

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

/(?<!#)\baddButton\b/
Run Code Online (Sandbox Code Playgroud)

它会:

  1. (?<!#) (?)
    • 确保当前位置不在#(哈希标记)之前
  2. \b (?)
    • 确保当前位置是单词边界(在这种情况下,它确保前一个字符不是单词字符,并且下一个字符是)
  3. addButton (?)
    • 匹配"addButton"
  4. \b (?)
    • 确保当前位置有单词边界.这避免了匹配"addButtonNew"之类的东西(因为"addButton"和"New"之间没有单词边界)

与这个正则表达式的不同之处在于,这个不会消耗"addButton"之前的字符.

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


Ada*_*tek 12

/([^#]|^)addButton/
Run Code Online (Sandbox Code Playgroud)

它将匹配"addButton" 前面没有 "#"或字符串开头的每个字符串.