PHP中的正则表达式行为异常
所以,我有一些数据库,我使用正则表达式来处理所有这些行。但问题是在电子邮件部分可能没有或没有单一的“@”符号。我决定把@放在域名之前,它们并不多,然后把所有我不需要的@都去掉。 我使用了一些在线正则表达式构造函数,比如这个。我得到了以下正则表达式,用于将@置于域之前:PHP中的正则表达式行为异常,php,regex,preg-replace,Php,Regex,Preg Replace,所以,我有一些数据库,我使用正则表达式来处理所有这些行。但问题是在电子邮件部分可能没有或没有单一的“@”符号。我决定把@放在域名之前,它们并不多,然后把所有我不需要的@都去掉。 我使用了一些在线正则表达式构造函数,比如这个。我得到了以下正则表达式,用于将@置于域之前: preg_replace("/(dodgit|trashymail|pookmail|spambob|mailinator)/", "@$1", $myline); 但它就是不起作用。例如: CynthiaELopezdodg
preg_replace("/(dodgit|trashymail|pookmail|spambob|mailinator)/", "@$1", $myline);
但它就是不起作用。例如:
CynthiaELopezdodgit.com
在此脚本之后不会更改
有什么不对劲?我是PHP新手,如果问题真的很愚蠢,我很抱歉:您需要获取返回值
$newLine = preg_replace("/(dodgit|trashymail|pookmail|spambob|mailinator)/", "@$1", $myline);
$newLine将包含带有@的电子邮件,$myline将继续保留不带@的电子邮件。preg_replace不会改变原始变量,您的正则表达式工作正常。我会检查以确保您看到的变量是正确的。preg_replace不会覆盖变量,而是返回它 例如: