Php 使用插入符号时,preg_match_all不正确匹配?

Php 使用插入符号时,preg_match_all不正确匹配?,php,regex,preg-match-all,Php,Regex,Preg Match All,实际上,我正在尝试使用正则表达式修饰符,特别是多行修饰符m,因此编写了以下简单的测试字符串: $subject = "ABC Some text DEF. GHI Some text JKL and some text MNO. PQR "; 为了在线路开始时只匹配大写字母,我写道: preg_match_all('/^[A-Z][A-Z]+/m',$subject,$m); 但只得到: array(1) { [0]=> array(1) { [0]=> string

实际上,我正在尝试使用正则表达式修饰符,特别是多行修饰符m,因此编写了以下简单的测试字符串:

$subject = "ABC
Some text DEF.
GHI
Some text JKL and some text MNO.
PQR
";
为了在线路开始时只匹配大写字母,我写道:

preg_match_all('/^[A-Z][A-Z]+/m',$subject,$m);
但只得到:

array(1) {
 [0]=>
  array(1) {
   [0]=> string(3) "ABC"
  }
}
我还尝试了misU修饰语,但也没有预期的结果:

preg_match_all('/^[A-Z][A-Z]+/misU',$subject,$m);
但当我测试时,我得到了预期的结果

但奇怪的是,当我复制从regex101本身生成的代码时,它也不起作用

来自Regex101的代码


它不匹配的可能原因是,从正则表达式编辑器复制/粘贴后,代码中出现了前导空格;从字符串中删除前导空格或调整图案

$re = '/^\s*[A-Z][A-Z]+/m';
// this will accommodate leading spaces
否则,请修复代码并删除前导空格:

<?php

$re = '/^[A-Z][A-Z]+/m';
$str = 'ABC
Some text DEF.
GHI
Some text JKL and some text MNO.
PQR
    ';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);

?>

是的,我想当我按下回车键时,它不会计算自动标签。我的错误。非常感谢。
<?php

$re = '/^[A-Z][A-Z]+/m';
$str = 'ABC
Some text DEF.
GHI
Some text JKL and some text MNO.
PQR
    ';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);

?>
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(3) "ABC"
  }
  [1]=>
  array(1) {
    [0]=>
    string(3) "GHI"
  }
  [2]=>
  array(1) {
    [0]=>
    string(3) "PQR"
  }
}