如何在多行POST数据或HERE / NOW文档中使用带有m修饰符的Regex

我正在尝试在preg_match_all中使用$和m修饰符的组合。

preg_match_all('/.y$/m',$text,$matches);

基本上,我正在尝试获取以y结尾的每行的最后2个字母,并且此代码可以在此字符串下正常工作。

$str2 = "helloly\nhelloby\nhelloty\n";

但是当我尝试将其与来自textarea元素的数据一起使用时,我只会得到最后一行。 Heredoc和nowdoc的情况相同。 我想了解如何在Heredoc或textarea中的多行数据上使用带有m修饰符的正则表达式

编辑: 这是iam用于测试的完整代码

该问题似乎与换行符的插入方式有关,因为当我在php文档中更改了行分隔符类型时,heredoc / nowdocs可以正常工作。 但是发布数据仍然只匹配最后一行, 我将添加环境以防万一 Windows 10 x64 OSpanel 5.2.2 Apache 2.4-php7.0-7.1 PHP-7.1_64x

    <?php

$str2 = "helloly\nhelloby\nhelloty\n";

$str = <<<HERE
helloly
helloby
helloty
HERE;

$text = $_POST['textarea2'];
$matches=[];
$pr = 
var_dump(preg_match_all('/.y$/m',$str,$matches));
var_dump($matches);

?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

<form action="/" method="post">
    <textarea name="textarea2" style="resize:none"></textarea>
    <button type="submit">sub</button>
</form>

</body>
</html>
zengh225 回答:如何在多行POST数据或HERE / NOW文档中使用带有m修饰符的Regex

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2833881.html

大家都在问