如何编写正则表达式,我们可以找到所有以指定字符串开头的单词。对于前-
a = "asasasa sasDRasas dr.klklkl DR.klklklkl Dr klklklkklkl"
在这里,我想使用 ignorecase 获取所有以 dr 开头的单词。我试过了,但所有函数的结果都是 dr 在单词中找到,而不是单词的开头。
提前致谢。
请您参考如下方法:
您可以使用 \b 来查找单词边界,并使用 re.IGNORECASE 标志进行不区分大小写的搜索。
import re
a = "asasasa sasDRasas dr.klklkl DR.klklklkl Dr klklklkklkl"
for match in re.finditer(r'\bdr', a, re.IGNORECASE):
print 'Found match: "{0}" at position {1}'.format(match.group(0), match.start())
这将输出:
Found match: "dr" at position 18 Found match: "DR" at position 28 Found match: "Dr" at position 40
此处,模式 \bdr 匹配 dr,但前提是它位于单词的开头。这也将产生与 driving 等字符串的匹配。如果您只想查找 dr 作为唯一词,请使用 \bdr\b。
我使用 re.finditer()扫描搜索字符串并在循环中生成 dr 的每个匹配项。 re.IGNORECASE 标志导致 dr 也匹配 DR、Dr 和 dR .
