我正在从文本中的电子邮件中搜索域,电子邮件的“格式”类似于:[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/