多行重复模式的正则表达式

时间:2013-08-14 09:57:18

标签: regex

ABC1

PQR1

      XYZ1
      XYZ2
      XYZ3
ABC2

PQR2

     XYZ4
     XYZ5
ABC3

PQR3

     XYZ6
     XYZ7
     XYZ8
     XYZ9

我想使用正则表达式拆分上述文本,以便输出包含3个匹配项。线从ABC开始,直到下一次出现的ABC为止。所以输出应该是这样的。 第一场比赛: -

ABC1
PQR1
  XYZ1
  XYZ2
  XYZ3

第二场比赛: -

ABC2
PQR2
  XYZ4
  XYZ5

和第三场比赛: -

ABC3
PQR3
  XYZ6
  XYZ7
  XYZ8
  XYZ9

1 个答案:

答案 0 :(得分:1)

$str = 'ABC1 PQR1 XYZ1 XYZ2 XYZ3 ABC2 PQR2 XYZ4 XYZ5 ABC3 PQR3 XYZ6 XYZ7 XYZ8 XYZ9';

$sections = preg_split('/(?!^)(?=ABC)/', $str);

print_r($sections);

应该让你走上正确的轨道。