关于这个问题:In need of regex assistance,特别是这个正则表达式:“[AZ] {3}(?:\ d {3} - )+ \ d + - ”,什么是最好的方式来容纳而不是只有破折号,>整数组之间的标志?
LHZ345-347>348-349>362>363-LMZ323-342-344-345-346-180100-
应该导致
LHZ345-347>348-349>362>363-
LMZ323-342-344-345-346-180100-
此外,如何在PHP中实现此正则表达式。我的代码行:
preg_match("/[A-Z]{3}(?:\d{3}-)+\d+-/", $string, $array);
当在线验证器在相同的输入字符串上找到它们时,仅查找字符串的第一个实例。谢谢 - 布兰登
答案 0 :(得分:0)
preg_match_all("/[A-Z]{3}(?:\d{3}[-\>])+\d+-/", $string, $array);
答案 1 :(得分:0)
要查找某个正则表达式的所有匹配项,您必须使用preg_match_all
。使用字符类[->]
php > preg_match_all("/[A-Z]{3}(?:\d{3}[->])+\d+-/", "LHZ345-347>348-349>362>363-LMZ323-342-344-345-346-180100-", $matches);
php > var_dump($matches);
array(1) {
[0]=>
array(2) {
[0]=>
string(27) "LHZ345-347>348-349>362>363-"
[1]=>
string(30) "LMZ323-342-344-345-346-180100-"
}
}