我有以下代碼:$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 關注
- 127 瀏覽
添加回答
舉報
0/150
提交
取消