首页 > 解决方案 > preg_match 与多行无法正常工作

问题描述

我有以下代码:

$data = "numbers{One
Two
Three}";

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

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

标签: phpregexpreg-matchline-breaksmultiline

解决方案


所有正则表达式引擎都支持许多搜索修饰符,例如不区分大小写的搜索或 multiLineSourse,请尝试“m”修饰符

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

推荐阅读