我的输出带有一个命令:
can0 11001600 [2] 5C A7 can0 02001600 [2] 00 00 can0 07001600 [2] 00 00
并非每次都以相同的顺序,它可以是:
preg_match("11001600 [2] [A-Z0-9]",$output);
“5C A7”。
我这样做:
{{1}}
但它给了我0所以它意味着它没有找到。我该怎么办?
答案 0 :(得分:1)
你快到了。
[
是一个正则表达式字符,需要进行转义才能在正则表达式中用作字符串。
https://regex101.com/r/Dm12mr/2
/11001600 \[2\] ([A-Z0-9]{2} [A-Z0-9]{2})/
有效
编辑:忘记()
答案 1 :(得分:1)
正则表达式: 11001600 \[2\]\s+\K[A-Z0-9]{2}\s+[A-Z0-9]{2}
1。
11001600 \[2\]\s+\K
这将匹配11001600 [2]
\K
将重置当前匹配。2。
[A-Z0-9]{2}\s+[A-Z0-9]{2}
这将匹配A-Z
,0-9
和{2}
两次。
<?php
ini_set('display_errors', 1);
$string="can0 11001600 [2] 5C A7 can0 02001600 [2] 00 00 can0 07001600 [2] 00 00 ";
preg_match("/11001600 \[2\]\s+\K[A-Z0-9]{2}\s+[A-Z0-9]{2}/",$string,$matches);
print_r($matches[0]);
输出: 5C A7