在c#上使用spases的Regex Negative Lookbacking



我无法理解regex Negative Lookbacking。。

如果在某些空格之前有一个"not"字,我不需要抓住"(this)"。例如:

  1. 。。。(这个)-捕获
  2. 。。。not(this)-not catch
  3. 。。。not (this)-没有捕捉到,但它捕捉到了

请告诉我哪里错了,我做不到。我的模板:

(?<!bnotb)s*((.*?this.*?))

(?<!...)无法理解类似(?<!bnotbs*) 的内容

https://regex101.com/r/mK1yQ1/1

好吧,你使用了一个错误的在线regex测试仪,你需要一个支持。NET正则表达式语法Regex101.com不支持。NET正则表达式语法

您可能实际使用

(?<!bnotbs*)(this)

查看此regex演示

模式解释

  • (?<!bnotbs*)-如果存在
    • b-前导字边界
    • not-not文字子字符串
    • b-尾随字边界
    • s*-零个或多个空白
  • (-文字(符号
  • this-文字字符串this
  • )-一个文字)符号

注意,该模式与rtjtj bbg (this,and that)中的this不匹配。为了使其与this匹配,您可以在最后一个)->(?<!bnotbs*)(this)?之后添加一个?(一个或零个)量词。您可以进一步调整图案。

最新更新