正则表达式匹配前面没有特定单词的字符串

Regex matches for string not preceeded by certain word

在 sourcetree 中有一个选项可以使用正则表达式建立链接。

我使用#number 和#number 作为任务编号和拉取请求编号。

'Usually' 拉取请求编号前面有字符串 "pull request" 或 "Pull Request" 或 "Pull request".

目前我正在使用:#(\d+) 来匹配任务编号,但显然这也与拉取请求编号匹配,所以我认为要完成我想要的,我只需要匹配#(\d+ ) 如果不在 "pull request" 之后,我该怎么做?还是有更好的方法来做我想做的事情?

使用消极的眼光:

(?<![pP]ull [rR]equest)#number

语法 (?<!...) 背后的负面看法 。它断言但不捕获它前面的字符 not 匹配模式 ....

还有其他三种口味或环顾四周:

  • (?<=...)一个(正)向后看
  • (?=...)(正面)展望
  • (?!...) 负面展望

效果相似,而且效果明显。