我有以下代码:$data = "numbers{OneTwoThree}";preg_match("~(?<=numbers{)(.*?)(?=})~", $data, $result);echo $result[0];preg_match 不起作用我不知道为什么如果数据只有一行那么它就起作用
2 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
与.
换行符不匹配使用修饰符s
:
~(?<=numbers{)(.*?)(?=})~s
或者你可以只匹配 NOT }
:
~(?<=numbers{)([^}]*)(?=})~
由于不知道您的所有要求,您也许可以简化它:
preg_match("~numbers{([^}]*)}~", $data, $result); echo $result[1];
神不在的星期二
TA贡献1963条经验 获得超6个赞
所有正则表达式引擎都支持许多搜索修饰符,例如对于不区分大小写的 serch 或 multiLineSourse,请尝试“m”修饰符
preg_match("~(?<=numbers{)(.*?)(?=})~ms", $data, $result);
- 2 回答
- 0 关注
- 99 浏览
添加回答
举报
0/150
提交
取消