首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >负向环视-- regex

负向环视-- regex
EN

Stack Overflow用户
提问于 2012-07-12 05:22:43
回答 2查看 391关注 0票数 1

我正试着自己学习正则表达式,所以才有了这个愚蠢的活动。

我正在尝试检索任何包含“足球”的单词,但不包括" football“--这样我就可以获得其他任何东西--足球运动员,足球运动员,足球。只是不是“足球”。

我发现\bfootball(?!s)\b把足球运动员和足球都踢走了。我怎么能只排除“足球”呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 05:31:51

您必须在断言中移动单词边界:

代码语言:javascript
复制
/\bfootball(?!s\b)/

这比完全去掉单词边界更正确。当您删除边界时,您会遗漏带有s的单词和后面的其他内容:例如footballsa

票数 2
EN

Stack Overflow用户

发布于 2012-07-12 05:26:09

\bfootball(?!s)\b排除了“足球运动员”,因为你要查找一个单词边界,然后是“足球”,然后不是S,然后是另一个单词边界(这不允许你在“足球”之后找到任何东西)。去掉结束词边界(换句话说,改用\bfootball(?!s\b) )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11441705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档