我已经编写了以下正则表达式来匹配来自HTML文件的一组电子邮件。电子邮件可以采用多种格式,例如
alice @ so.edu
alice at sm.so.edu
alice @ sm.com
<a href="mailto:alice at bob dot com">
在用编程语言实现正则表达式之前,我通常使用RegexPal测试正则表达式。我在上一封邮件示例中观察到一个奇怪的行为。RegexPal向我显示了与regex的匹配,但是在Python程序中使用相同的regex时,它并没有给我带来任何帮助。原因是什么?你知道吗
mail_regex = (?:[a-zA-Z]+[\w+\.]+[a-zA-Z]+)\s*(?:@|\bat\b)\s*(?:(?:(?:(?:[a-zA-Z]+)\s*
(?:\.|dot|dom)\s*(?:[a-zA-Z]+)\s*(?:\.|dot|dom)\s*)(?:edu|com))|(?:(?:[a-zA-Z]+\s*(?:\.|dot|dom)\s*(?:edu|com))))
RegEx有点复杂,可以容纳各种其他示例(数据集中的电子邮件模式)。您还可以在CodePad上运行和检查Python程序-http://codepad.org/W2p6waBb
编辑
只是给大家一个视角,相同的正则表达式在-http://pythonregex.com/
这里的具体问题似乎是您需要使用原始字符串:
否则,例如
\b
将是backspace而不是word boundary。你知道吗另外,您使用的是JavaScript测试仪。Python有不同的语法和行为。为了避免意外,最好使用Python特定的语法进行测试。你知道吗
相关问题 更多 >
编程相关推荐