php - 在 PHP 中使用正则表达式查找并替换 "["和,或 "]"

标签 php regex

我正在从文本中的电子邮件中搜索域,电子邮件的“格式”类似于:[mailto:name@domain.com] 我正在使用以下基本正则表达式查找它们:

 $r = '/mailto:.*\]/';

然后我正在应用这个:

substr(strrchr($matches[1][0], "@"), 1);

最终结果是这样的

域名.com]

所以问题是,如何摆脱“]”或更好的方法来从 [mailto:name@domain.com] 内的电子邮件中仅获取域任何建议?提前致谢!

谢谢!

最佳答案

您可以在正则表达式中尝试前瞻:

$r = '/mailto:.*(?=\])/';

或者使用 trim 将其从结果中删除:

$final = substr(strrchr($matches[1][0], "@"),1).trim("]");

顺便说一句,你可以只使用lookbehind,所以你不需要使用substr:

$r = '/(?<=\[mailto:[^@]*@).*(?=\])/';

关于php - 在 PHP 中使用正则表达式查找并替换 "["和,或 "]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398073/

相关文章:

带有 REGEXP 的 PHP PDO 准备语句

python - Python中的正则表达式出乎意料地慢

java - 正则表达式匹配 Java 中的未转义逗号

.net - 用于从此模式中提取数字的正则表达式 "channelId=4;5;66&"

php - undefined variable 和mysqli错误

PHP If 语句在 MySQL boolean 列返回上返回 false

php - 如何使用从一个类到另一个类的连接

PHP - 为什么当前日期与数据库内的日期不同?

c# - 正则表达式之间的替换

javascript - 构建当前的以类别为中心的导航