【发布时间】:2022-10-13 18:28:58
【问题描述】:
我有一种情况,我想搜索大文本中是否存在子字符串。所以,我只是在使用:
if pattern in text: ...
但是,我想确保“文本”中“模式”的存在不会立即以字母作为前缀或后缀。如果它以特殊字符、数字或空格开头或结尾,则可以。
因此,如果模式为“abc”,则匹配“some text abc”,“random texts,abc,cde”应返回 True,而搜索“some textabc”时,“random abctexts”应返回 False(因为“abc”是以字母开头或结尾)。
执行此操作的最佳方法是什么?
【问题讨论】:
-
r'(?:[^a-zA-Z])(abc)(?:[^a-zA-Z])'将仅捕获abc。(?: ...)表示非捕获组,因此您不会捕获非字母字符。您可以查看此community guide on regex 并随时尝试使用regex101 等工具
标签: python substring text-search