我正试着自己学习正则表达式,所以才有了这个愚蠢的活动。
我正在尝试检索任何包含“足球”的单词,但不包括" football“--这样我就可以获得其他任何东西--足球运动员,足球运动员,足球。只是不是“足球”。
我发现\bfootball(?!s)\b把足球运动员和足球都踢走了。我怎么能只排除“足球”呢?
发布于 2012-07-12 05:31:51
您必须在断言中移动单词边界:
/\bfootball(?!s\b)/这比完全去掉单词边界更正确。当您删除边界时,您会遗漏带有s的单词和后面的其他内容:例如footballsa。
发布于 2012-07-12 05:26:09
\bfootball(?!s)\b排除了“足球运动员”,因为你要查找一个单词边界,然后是“足球”,然后不是S,然后是另一个单词边界(这不允许你在“足球”之后找到任何东西)。去掉结束词边界(换句话说,改用\bfootball(?!s\b) )。
https://stackoverflow.com/questions/11441705
复制相似问题