0

我不擅长正则表达式,但我正在尝试找到一种解决方案,使用 preg_replace() 从导出到我较新数据库的电子邮件列表中替换一些字符:

$patterns1 = '/\[at\]/'; '/\(at\)/'; '/\{at\}/'; '/\ at\ /';
$replacements1 = '@';

$patterns2 = '/\[dot\]/'; '/\(dot\)/'; '/\{dot\}/'; '/\ dot\ /';
$replacements2 = '.';

input:
username [at] subdomain [dot] domain [dot] com
username {at} subdomain {dot} domain {dot} com
username (at) subdomain (dot) domain (dot) com
username at subdomain dot domain dot com
username[at]subdomain[dot]domain[dot]com
username{at}subdomain{dot}domain{dot}com
username(at)subdomain(dot)domain(dot)com

output:
username@subdomain.domain.com
username@subdomain.domain.com
username@subdomain.domain.com
username@subdomain.domain.com
username@subdomain.domain.com
username@subdomain.domain.com
username@subdomain.domain.com
4

1 回答 1

1

如果你真的需要它,这对我有用: $ echo 'me {at)somewhere dot com' | perl -lane 's/(\s*[({\[ ]at[)}\] ]\s*)/@/g; s/(\s*[({\[ ]dot[)}\] ]\s*)/./g;print'

你的模式将是/\s*[({\[ ]at[)}\] ]\s*//\s*[({\[ ]dot[)}\] ]\s*/

于 2012-11-29T10:07:27.643 回答