Php 如何对正则表达式进行较小的修改?

Php 如何对正则表达式进行较小的修改?,php,regex,Php,Regex,关于这个问题:特别是这个正则表达式:[A-Z]{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_matc

关于这个问题:特别是这个正则表达式:[A-Z]{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);

仅当在线验证器在同一个精确的输入字符串上找到字符串的第一个实例时,才会找到该字符串。谢谢-Brandon

为了找到您必须使用的某个正则表达式的所有匹配项。使用字符类:[->]在同一位置匹配多个字符

preg_match_all("/[A-Z]{3}(?:\d{3}[-\>])+\d+-/", $string, $array);
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-"
  }
}