我正在寻找匹配特定模式的字符串中的单词。 问题是,如果单词是电子邮件地址的一部分,则应该忽略它们。正则表达式 - 匹配模式中的单词,电子邮件地址除外
为了简化“合适词”\w+\.\w+
的模式 - 一个或多个字符,一个实际时段和另一系列字符。
导致问题的句子例如是a.a b.b:c.c [email protected]
。
目标是仅匹配[a.a, b.b, c.c]
。在我构建的大多数正则表达式中,e.e
也会返回(因为我使用了一些字边界匹配)。
例如:
>>> re.findall(r"(?:^|\s|\W)(?<[email protected])(\w+\.\w+)([email protected])\b", "a.a b.b:c.c [email protected]") ['a.a', 'b.b', 'c.c', 'e.e']
我怎么能只匹配中不包含 “@” 的话呢?
而不是试图得到一个聪明的正则表达式,可能首先清理字符串?第一条带\ w + @ \ w +然后处理。我使用python完成了大量的ETL工作,而且通常清理垃圾,然后拆分/处理数据更容易/更快。 – sniperd
http:// www。rexegg.com/regex-best-trick.html#thetrick –