繁体   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