PHP从文本中提取7个字符的十六进制
我想从文本中提取7个十六进制字符PHP从文本中提取7个字符的十六进制,php,regex,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); 多谢各位 /^[0-9A-Fa-f]{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-9A-Fa-f]{7}$/
在字符串的开头和结尾查找十六进制字符串
删除
^
和$
并将它们改为单词边界
使用以下命令:
/\b[0-9a-f]{7}\b/i
/^[0-9A-Fa-f]{7}$/
在字符串的开头和结尾查找十六进制字符串
删除
^
和$
并将它们改为单词边界
使用以下命令:
/\b[0-9a-f]{7}\b/i
您的正则表达式要求整个字符串只包含这七个十六进制字符 删除
^
和$
以查找字符串中的任何字符,但请注意abracadabra
将“匹配”为六位十六进制“数字”(acadab
),因此可能存在其他此类误报。考虑使用这个代替:
"/\b[0-9a-z]{7}\b/i"
这将避免匹配单词的中间部分。您的正则表达式要求整个字符串只包含这七个十六进制字符 删除
^
和$
以查找字符串中的任何字符,但请注意abracadabra
将“匹配”为六位十六进制“数字”(acadab
),因此可能存在其他此类误报。考虑使用这个代替:
"/\b[0-9a-z]{7}\b/i"
这将避免单词中间的匹配。从regexp stringthank you@hindsmost it's work(y)记住,其他常规单词与该产品匹配,比如
caffee
(我知道,只有6个字符,但你明白了)。@Boldewyn:我明白了,顺便说一句,我需要的十六进制总是混合的。可以使用正则表达式吗<代码>/\b[0-9a-f]{7}\b/i@Andy是的,但它看起来不太好看:\b(?=[0-9a-Fa-f]*[0-9])[0-9a-Fa-f]{7}\b/
。它使用a来确保7个字符中至少有一个数字。(开始→ 断言后跟任意数量的十六进制数字(*
)和一个数字→ 限制为正好7个十六进制数字的长度。)从regexp stringthank you@hindsmost它的工作(y)中删除^
和$
。请记住,其他常规单词与该产品匹配,如caffee
(我知道,只有6个字符,但你明白了)。@Boldewyn:我明白了,顺便说一句,我需要的十六进制总是混合的。可以使用正则表达式吗<代码>/\b[0-9a-f]{7}\b/i@Andy是的,但它看起来不太好看:\b(?=[0-9a-Fa-f]*[0-9])[0-9a-Fa-f]{7}\b/
。它使用a来确保7个字符中至少有一个数字。(开始→ 断言后跟任意数量的十六进制数字(*
)和一个数字→ 限制为正好7个十六进制数字的长度。)…并将其替换为\b
,应添加。我接受此答案,因为我的问题与十六进制有关。你的解释对我很有用。谢谢两位:)…并将其替换为\b
,应添加。我接受此答案,因为我的问题与十六进制有关。你的解释对我很有用。谢谢你们两位:)