簡體   English   中英

正則表達式|如果包含某些單詞,則忽略字符串的第二個單詞

[英]Regex|Ignore second word(s) of string if it contains certain words

/((?:(?:is|will) (?!is))[^<?]+)/i

測試語句:

  • 文字可以在面前,請問是個好人嗎?
  • 同樣在這里。 你能幫我嗎?

我不希望它與第一個句子匹配,而我希望它與第二個句子匹配。

我正在嘗試學習如果“ is | will”之后的單詞為“ is”,如何將整個正則表達式返回為false,但是它保持匹配並最終在示例1中找到了匹配項。 我是regex的新手,因此感謝所有幫助。

匹配結果如下所示:

比賽看起來像什么

提前致謝

您的表達式看起來不錯,但是您需要對其進行錨定,以便從文本開頭開始進行匹配。 您可以在正則表達式的開頭使用^

/^((?:(?:is|will) (?!is))[^<?]+)/i

如果沒有錨,則正則表達式引擎會嘗試在字符串中的任意位置找到匹配項。 在第一個句子的情況下,它可以匹配單詞is作為表達式中的第一個單詞,然后匹配其余的表達式。

暫無
暫無

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

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