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

时间:2014-04-30 13:14:29

标签: php regex

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

谢谢。

maybe similar to this but don't know why not working

2 个答案:

答案 0 :(得分:3)

你的正则表达式要求整个字符串只包含 那七个十六进制字符。

删除^$以查找字符串中任何位置的字符,但要注意abracadabra将“匹配”为六位十六进制“数字”({{1所以可能还有其他这样的误报。请考虑使用此代码:

acadab

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

答案 1 :(得分:1)

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

删除^$,然后改为使用字边界。

使用此:

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