我想从文本中提取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);
谢谢。
答案 0 :(得分:3)
你的正则表达式要求整个字符串只包含 那七个十六进制字符。
删除^
和$
以查找字符串中任何位置的字符,但要注意abracadabra
将“匹配”为六位十六进制“数字”({{1所以可能还有其他这样的误报。请考虑使用此代码:
acadab
这样可以避免匹配单词的中间部分。
答案 1 :(得分:1)
/^[0-9A-Fa-f]{7}$/
在字符串的开头和结尾查找十六进制字符串。
删除^
和$
,然后改为使用字边界。
使用此:
/\b[0-9a-f]{7}\b/i