我有一个包含电子邮件地址的变量。
示例:
$email[1]="email(at)test.com";
$email[2]="email[at]test.com";
$email[3]="email(a)test.com";
$email[4]="email(alfa)test.com";
$email[5]="email[a]test.com";
如何在PHP中执行正则表达式查找()和[]之间的所有内容并替换为“@”。所以最终会是这样的:
$email[1]="email@test.com";
$email[2]="email@test.com";
$email[3]="email@test.com";
$email[4]="email@test.com";
$email[5]="email@test.com";
我现在拥有的只是((([a-zA-Z] +))|([[a-zA-Z] +]))
答案 0 :(得分:1)
正则表达式:
[(\[][a-z]+[)\]]
替换字符串:
@
示例:强>
<?php
$string = 'email(alfa)test.com';
$pattern = '~[(\[][a-z]+[)\]]~';
$replacement = '@';
echo preg_replace($pattern, $replacement, $string);
?> //=> email@test.com
答案 1 :(得分:1)
使用此:
$replaced = preg_replace('~[([][^])]+[\])]~', '@', $yourstring);
<强>解释强>
~[([]
匹配左括号或大括号[^])]+
匹配任何不是右括号或大括号的字符[\])]
匹配右括号或大括号@