多行的 preg_match 无法正常工作

我有以下代码:


$data = "numbers{One

Two

Three}";


preg_match("~(?<=numbers{)(.*?)(?=})~", $data, $result);

echo $result[0];

preg_match 不起作用我不知道为什么如果数据只有一行那么它就起作用


月关宝盒
浏览 100回答 2
2回答

哆啦的时光机

与.换行符不匹配使用修饰符s:~(?<=numbers{)(.*?)(?=})~s或者你可以只匹配 NOT&nbsp;}:~(?<=numbers{)([^}]*)(?=})~由于不知道您的所有要求,您也许可以简化它:preg_match("~numbers{([^}]*)}~",&nbsp;$data,&nbsp;$result); echo&nbsp;$result[1];

神不在的星期二

所有正则表达式引擎都支持许多搜索修饰符,例如对于不区分大小写的 serch 或 multiLineSourse,请尝试“m”修饰符preg_match("~(?<=numbers{)(.*?)(?=})~ms",&nbsp;$data,&nbsp;$result);
打开App,查看更多内容
随时随地看视频慕课网APP