alo*_*lon 5 python regex negative-lookbehind negative-lookahead
我希望在字符串中找到与特定模式匹配的单词.问题是,如果单词是电子邮件地址的一部分,则应忽略它们.
简化"正确单词"的模式\w+\.\w+- 一个或多个字符,实际句点和另一系列字符.
例如,导致问题的句子是a.a b.b:c.c d.d@e.e.e.
目标是仅匹配[a.a, b.b, c.c].对于我构建的大多数正则表达式,e.e也会返回(因为我使用了一些单词边界匹配).
例如:
>>> re.findall(r"(?:^|\s|\W)(?<!@)(\w+\.\w+)(?!@)\b", "a.a b.b:c.c d.d@e.e.e")
['a.a', 'b.b', 'c.c', 'e.e']
如何只匹配不包含"@"的单词?
我肯定会先清理它并简化正则表达式。
首先我们有
words = re.split(r':|\s', "a.a b.b:c.c d.d@e.e.e")
Run Code Online (Sandbox Code Playgroud)
@然后过滤掉其中带有 的单词。
words = [re.search(r'^((?!@).)*$', word) for word in words]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |