PHP从文本中提取7个字符的十六进制


PHP extract 7 character Hexadecimal from text

我想从文本中提取7个十六进制字符。

$text = 'Lorem ipsum dolor sit amet, 1AA69C9 consectetuer adipiscing elit. Aenean commodo ligula eget dolor. 2de7890';
preg_match_all("/^[0-9A-Fa-f]{7}$/",$text,$result);
print_r($result);

谢谢。

可能与此类似,但不知道为什么不工作

您的正则表达式要求整个字符串仅由这七个十六进制字符组成。

删除^$可以在字符串中的任何位置找到字符,但要注意abracadabra会"匹配"为六位数的十六进制"数字"(acadab(,因此可能存在其他此类误报。考虑使用这个替代:

"/'b[0-9a-z]{7}'b/i"

这样可以避免单词中间的匹配。

/^[0-9A-Fa-f]{7}$/在字符串的开头和结尾查找十六进制字符串。

删除^$,使它们成为单词边界。

使用此:

/'b[0-9a-f]{7}'b/i