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



关于这个问题:需要正则表达式帮助,特别是这个正则表达式:"[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);

仅当在线验证者在同一个确切的输入字符串上找到字符串时,才会找到字符串的第一个实例。谢谢 - 布兰登

preg_match_all("/[A-Z]{3}(?:d{3}[->])+d+-/", $string, $array);

为了找到某个正则表达式的所有匹配项,您必须使用 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-"
  }
}

最新更新