如何通过php正则表达式在data-cfiail标记中获取字符串?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (70)

我想从字符串中获取344747585151010c745359555d581a575b59

[a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="344747585151010c745359555d581a575b59"]

我尝试了以下PHP来捕获它:

preg_match_all("/<a [^>]*data-cfemail=\"?([^\">]+)\"?>/", $input_lines, $output_array);
提问于
用户回答回答于

你的字符串中没有小于或大于符号。尝试:

data-cfemail="?([^"\]]+)(?:"|])
用户回答回答于

你可以使用data-cfemail,然后简单地匹配之后直接出现的任何数字或小写字母:

/(?<=data-cfemail=")[\da-z]+/

用这个:

  • (?<=data-cfemail=") - 匹配后面的任何内容 data-cfemail="
  • [\da-z] - 匹配任何数字或小写字母
  • + - 匹配一个或多个数字/小写字母

preg_match("/(?<=data-cfemail=")[\da-z]+/", $input_line, $output_array);

返回:

array(1
  0 => 344747585151010c745359555d581a575b59
)

扫码关注云+社区

领取腾讯云代金券