以下是示例字符串
<00> 00 00 00 12 A0 F5 CD 02 28 10
突出显示的是要匹配的组:
00 00 00 12 A0
F5
CD
02
28
10
我试过这个
(?<=12.*)\w{2}
但似乎无效。
答案 0 :(得分:2)
您可以使用
(?:\G(?!\A)|\b12\b)\s*\K[A-Z0-9]+
请参阅regex demo
<强>详情:
(?:\G(?!\A)|\b12\b)
- 匹配上一次成功匹配(\G(?!\A)
)或(|
)完整字12
(\b12\b
)\s*
- 0+ whitespaces \K
- 省略目前为止匹配的文字[A-Z0-9]+
- 一个或多个大写字母或数字。答案 1 :(得分:1)
答案 2 :(得分:1)
我不确定我理解,但是如果你想跳过前12个字符,并且匹配每个\ w \ w之后:
(^.{12})((?:(?:\w\w) ?)*)
第1组是跳过的字符。 第2组是您想要的信息。
Here就是一个例子。
编辑:我的困惑来自12
出现在12个字符之后的事实。
this效果更好吗?
12 ?((?:(?:\w\w) ?)*)
答案 3 :(得分:1)
答案 4 :(得分:1)
protected List<Map<String, List<List<Integer>>>> pCode;
protected List<Map<String, List<Map<String, String>>>> sType;
你也可以尝试这个简单的。
<强>代码:强>
(?<!00)(?:\s)\K[A-Z0-9]{2}
<强>输出:强>
<?php
$string="00 00 00 12 A0 F5 CD 02 28 10";
preg_match_all('/(?<!00)(?:\s)\K[A-Z0-9]{2}/', $string,$matches);
print_r($matches);