我尝试创建PCRE正则表达式来捕获来自大量文本]的电子邮件地址>。我想出的当前正则表达式是:
(?:[^\w]|^)([a-z0-9+_\-\.]+[^\.]@(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?)(?:[^\w]|$)
此正则表达式太慢了(问题Q,为什么这么慢?难道是未被捕获的组会影响性能吗?)。我知道在所有有效电子邮件的覆盖范围和性能之间会有所取舍,我的目标是获得最常见的格式,例如:
[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] user%[email protected]
但不是无效地址,例如:
“ [email protected]”!我试图接近负数来检查例如是否存在@例如(?Abc.example.com A@b@[email protected] A.....example.com
例如,A @ b @ c @ example.com无效,但我不希望正则表达式也捕获A @ b @ [email protected]
我尝试创建一个PCRE正则表达式来捕获大量文本中的电子邮件地址。我想出的当前正则表达式是:(?:[^ \ w] | ^)([a-z0-9 + _ \-\。] + [^ \。] @(?:[a-z0-9 ](?:[a-z0-9 \-] * [a-z0-9])\。)+ [a-z0 -...
我认为您将其设置得过于复杂。我将通过以下方式简化正则表达式: