我正在写一个正则表达式匹配模式,当我突然发现preg_match_all不匹配不同行上的内容时。该怎么做,我该如何解决?
test1.php
$content = file_get_contents("test2.php");
preg_match_all("~startMatch(.+?)endMatch~", $content, $matches);
print_r($matches);
test2.php
startMatch text
endMatch
结果:
Array ( [0] => Array ( ) [1] => Array ( ) )
预期结果:
Array ( [0] => Array ( [0] => startMatch text endMatch ) [1] => Array ( [0] => text ) )
但是,如果startMatch text endMatch
位于同一行,我们会得到预期的结果。那是什么?正则表达式中的周期与所有角色匹配?我该如何解决?