gpt4 book ai didi

python正则表达式来检测一个词是否存在

转载 作者:行者123 更新时间:2023-11-28 21:10:06 32 4
gpt4 key购买 nike

我想使用 python 正则表达式检测一个单词是否在一个句子中。另外,希望能够否定它。

import re
re.match(r'(?=.*\bfoo\b)', 'bar red foo here')

此代码有效,但我不明白为什么我需要将 .* 放在那里。还要否定它,我不知道该怎么做。我试过:

re.match(r'(?!=.*\bfoo\b)', 'bar red foo here')

但它不起作用。我的最终目标是像这样组合它们:

re.match(r'(?=.*\bfoo\b)(?!=.*\bbar\b)', 'bar red foo here')

最佳答案

要检测某个单词是否存在于字符串中,您需要正向先行:

(?=.*\bfoo\b)

.* 是启用搜索的必要条件,而不仅仅是在字符串开头(re.match 将搜索锚定在字符串开头)。

要检查字符串中是否没有单词,请使用负向先行:

(?!.*\bbar\b)
^^^

所以,结合它们:

re.match(r'(?=.*\bfoo\b)(?!.*\bbar\b)', input)

将在包含整个单词 foo 且不包含整个单词 bar 的字符串中找到匹配项。

关于python正则表达式来检测一个词是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37125179/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com