0

在此处的堆栈溢出问题中,解释说您可以使用以下代码删除电子邮件:

$pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
$replacement = "[removed]";
preg_replace($pattern, $replacement, $string); 

这会删除 johndoe@gmail.com 之类的内容 - 如何修改正则表达式以便从一大段文本中删除 @johnDoe 之类的内容?

我真的不太了解正则表达式。

4

1 回答 1

1

利用

$pattern = "/@[^@\s]*/";

[^@\s]

  • \s代表任何空格字符
  • [@\s]代表一个字符组,包含\s(即空格)和@字符。它匹配@\s
  • [^@\s]代表不是的字符组 @\s
  • 毕竟,[^@\s]匹配不是@字符或\s(即空格)的单个字符

*在它代表前一个令牌之后(即[^@\s]此处)可以重复零次或多次。因此,[^@\s]*匹配任意长度的字符串,只要它不包含@\s


作为旁注,您的链接为匹配电子邮件提供了一个非常简化的正则表达式。匹配电子邮件的完美方式绝非易事。

于 2013-01-27T01:50:08.570 回答