我想从文本中提取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