当前位置: 代码迷 >> python >> Python Regex:查找特定关键字的所有可能匹配项
  详细解决方案

Python Regex:查找特定关键字的所有可能匹配项

热度:81   发布时间:2023-07-16 10:49:07.0

我是 python 新手,并试图找到一种最佳方式来搜索某些特定关键字“即将推出”、“正在建设中”、“找不到页面”和“禁止”。 我需要为这些字符串找到所有可能的匹配项:“即将到来”、“即将到来”、“即将到来”等。

我试过了:

re.compile("^coming soon$", re.I)) 

re.compile("coming soon", re.I))

或者

re.compile("\W*((?i)coming soon(?-i))\W*", re.I))

但到目前为止没有运气。 有人能帮我解决这个问题吗? 提前致谢!

re.findall是 python 正则表达式世界中一个非常有用的函数。

text="I'm new to python and trying to find a best way to search for some specific 
keywords 'coming soon', 'under construction', 'page not found' and 'forbidden'. I need 
to find all possible hits for those strings example: 'coming soon', 'Coming Soon', 
'coMInG SoOn' etc."

import re 
Hits=re.findall("(coming soon)", text, re.I)
print(Hits)

输出如下:

['coming soon', 'coming soon', 'Coming Soon', 'coMInG SoOn']

Python 文档 -

另外一个选项。 您可以使用re.findall并修改您的正则表达式模式本身以使用不区分大小写的匹配(?i)查找所有匹配项:

words = re.findall("(?i)coming soon", text)
print(words)

它会输出:

['coming soon', 'coming soon', 'Coming Soon', 'coMInG SoOn']

此外,您可以同时搜索所有 4 个短语:

words = re.findall("(?i)coming soon|under construction|page not found|forbidden", text)
print(words)

作为一般建议,在使用 regex 时,您始终可以使用测试您的语句。 希望能帮助到你。 祝你好运!