PHP中的正则表达式表现得很奇怪

Але*_*нко 0 php regex preg-replace

所以,我有一些数据库,我使用正则表达式来处理所有这些行.但问题是电子邮件部分可能没有或没有单个"@"符号.我决定在域之前放置@(其中没有很多)然后只删除我不需要的所有@.我使用了一些在线正则表达式构造函数 - 就像这个http://www.phpliveregex.com/.我得到了以下正则表达式,用于在域之前放置@:

preg_replace("/(dodgit|trashymail|pookmail|spambob|mailinator)/", "@$1", $myline); 
Run Code Online (Sandbox Code Playgroud)

但它只是不起作用.例如:

CynthiaELopezdodgit.com
Run Code Online (Sandbox Code Playgroud)

在此脚本之后不会更改.

有什么不对?我是PHP的新手,很抱歉,如果问题真的很愚蠢:)

ful*_*ked 7

您需要获得返回值

$newLine = preg_replace("/(dodgit|trashymail|pookmail|spambob|mailinator)/", "@$1", $myline);
Run Code Online (Sandbox Code Playgroud)

$ newLine将包含带@的电子邮件,$ myline将继续保留没有的电子邮件.preg_replace不会改变原始变量