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 に答える