簡體   English   中英

匹配不以&開頭的單詞

[英]Match words not beginning with &

我需要一個正則表達式,可以匹配不以&字符開頭的單詞(不區分大小寫)

例如搜索字符串Foo

然后匹配將是這樣的:

  • oo
  • Foo酒吧
  • 酒吧Foo酒吧
  • $ Foo酒吧
  • $ Foo $
  • Foo $ FooFoo &Foo Foo

像下面這樣使用否定的后置斷言,

(?i)(?<!&)foo

說明:

  • (?i)不區分大小寫的修飾符。
  • (?<!&)后面的否定表示匹配將以&字符開頭,但不能為。
  • foo匹配字符串foo

演示

對於js,

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

從組索引1獲取所需的字符串。

演示

> 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'

對於模式,這應該是Java友好的。 它使用非捕獲組,並確保foo不以“&”號開頭(&)

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

非與字符的非foo字符將顯示在比賽中,但不會出現在結果/捕獲中。

編輯:您可以在JavaScript regex語法中使用“ i”標志來調用不區分大小寫的模式modiefer。 那么該模式就是(?:[^&])foo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM