python - 正则表达式 - 匹配模式中的单词,电子邮件地址除外

标签 python regex negative-lookahead negative-lookbehind

我要在字符串中查找与特定模式匹配的单词。 问题是,如果这些词是电子邮件地址的一部分,它们应该被忽略。

为简化起见,“专有词”的模式\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")

然后过滤掉其中有@的单词。

words = [re.search(r'^((?!@).)*$', word) for word in words]

关于python - 正则表达式 - 匹配模式中的单词,电子邮件地址除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45441544/

相关文章:

python numpy/scipy 查找多维数组中相对变量的计数或频率

php - 正则表达式 - 从 PHP 中的 html 字符串获取表格

jquery - 使用 JS/jQuery 查找字母顺序错误的单词

php - URL 检测和 BB-Style 标签(正则表达式,前瞻问题)

python - 无法打开文件 "django-admin.py": No such file or directory -- Mac OSX

python - 在 Python 中将国籍转换为国家/地区

python - 同时发送/接收消息套接字python

Python Regex - + 元字符不贪婪

正则表达式 - 嵌套前瞻断言

python - 负面展望python正则表达式