Regexp:捕获特定字符串之前的所有字母和数字

icomxhvb  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(127)

为了替换,我想捕获preg_replace中特定字符串之前的所有字母和数字。
示例:email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)结果:email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)
我尝试了(([a-z]*[^\.\-\_]*)|\d*[^\.\-\_]*)(?=(@(?:[\w-]+\.)+[\w-]{2,4})),但它只得到最后一个匹配


的数据

tvmytwxo

tvmytwxo1#

您可以使用

preg_replace('/[a-zA-Z0-9](?=[^\s@]*@)/', 'a', $text)
preg_replace('/[^\W_](?=[^\s@]*@)/', 'a', $text)

字符串
参见regex demo

  • 详情 *
  • [^\W_]/[a-zA-Z0-9]-字母或数字
  • (?=[^\s@]*@)-紧挨着右边,必须有零个或多个字符,除了空格和@,然后是@字符。

相关问题