我正在尝试做一个 php regexp 来屏蔽电子邮件,以便
example@gmail.com 转向e*****e@gmail.com.
$maskedEmail=preg_replace('/^*@/', '*', $email);
Run Code Online (Sandbox Code Playgroud)
您可以使用
preg_replace('~((?!^)\G|^[^@])[^@](?=[^@]+@)~', '$1*', $s)
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
细节
((?!^)\G|^[^@])- 第 1 组:上一个匹配的结尾或字符串的开头以及除 a 之外的任何字符@[^@]- 一个字符以外的字符@(?=[^@]+@) - 需要 1 个以上字符的正向前瞻(这+在这里很重要,您不能使用*),而不是@紧随@当前位置右侧。替换是在组 1 中捕获的值(以便将第一个字符保留在字符串中,然后将 a 之前除最后一个字符以外的所有字符@ 替换为*.
| 归档时间: |
|
| 查看次数: |
481 次 |
| 最近记录: |