匹配字词不以&开头,

我需要一个正则表达式,它可以匹配不以&字符开头的单词(不区分大小写)

例如搜索字符串Foo

然后比赛会是这样的:

  • FOO
  • Foo
  • Bar Foo
  • Bar Foo
  • Bar Foo酒吧
  • $ Foo
  • $ Foo $
  • Foo $ FooFoo &Foo Foo

  • 使用如下所示的负向后置断言,

    (?i)(?<!&)foo
    

    说明:

  • (?i)不区分大小写的修饰符。
  • (?<!&)否定向后观点声明匹配会在任何之前,而不是在&字符之前。
  • foo匹配字符串foo
  • DEMO

    对于js,

    /(?:[^&]|^)(foo)/igm
    

    从组索引1获取所需的字符串。

    DEMO

    > var s = "Foo $Foo %Foo &Foo Foo";
    undefined
    > var re = /(?:[^&]|^)(foo)/igm;
    undefined
    > var m;
    undefined
    > while ((m = re.exec(s)) != null) {
    ... console.log(m[1]);
    ... }
    Foo
    Foo
    Foo
    Foo
    

    通过string.replace方法。

    > var s = "Foo $Foo %Foo &Foo Foo";
    undefined
    > s.replace(/([^&]|^)(foo)/igm, "$1bar")
    'bar $bar %bar &Foo bar'
    

    这应该是一个模式的Javascript友好。 它使用非捕获组并确保foo不会前接&符号(&)

    (?:[^&])[fF][oO][oO]
    

    不是与符号的非富语符将显示在匹配中,但不显示在结果/捕捉中。

    编辑:您可以在您的JavaScript正则表达式语法中使用'我'标志来调用不区分大小写模式的modiefer。 那么这个模式就是(?:[^&])foo

    链接地址: http://www.djcxy.com/p/77023.html

    上一篇: Match words not beginning with &

    下一篇: find specific string but not when present in certain sentence