$email_address_pattern="([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,6}";
$address= "abc@gmail.com";
$length=strlen($address);
for($position=0;$position<$length;) {
$match=preg_split($email_address_pattern,strtolower(substr($address,$position)),2);
print_r($match);
if(count($match)<2)
break;
$position+=strlen($match[0]);
$next_position=$length-strlen($match[1]);
$found=substr($address,$position,$next_position-$position);
if(!strcmp($found,""))
break;
if(IsSet($addresses[$found]))
$addresses[$found]++;
else {
$addresses[$found]=1;
$position=$next_position;
}
}
我收到警告:
警告:preg_split():第10行/home/www/html/cusidevelopment/test.php中的未知修饰符'+'
我该如何解决?
提前致谢
答案 0 :(得分:0)
您必须添加开始和结束符号。添加ü
可以提供正常运行的正则表达式。 (另外,这个网站将你的反引号解释为格式化,所以你需要反斜杠 - 逃避你问题中的那些。)
试试这个:
$email_address_pattern="ü([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~]+\.)+[a-zA-Z]{2,6}ü";
正如您所知,正则表达式不适合描述电子邮件地址。
答案 1 :(得分:0)
试试这个
$email_address_pattern="/([-!#\$%&'*+.\/0-9=?A-Z^_`a-z\{|\}~]+)@([-!#\$%&'*+\/0-9=?A-Z^_`a-z\{|\}~]+).[a-zA-Z]{2,6}/";