Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式弄乱了json_decode();_Php_Regex_Json - Fatal编程技术网

Php 正则表达式弄乱了json_decode();

Php 正则表达式弄乱了json_decode();,php,regex,json,Php,Regex,Json,我使用一个包含json字符串的文件来创建请求验证。我的一个测试中的JSON片段如下所示: { "name": "pattern", "attributes": [ { "name": "pattern", "value": "^[\d]{2}$" } ] } 但是,当您尝试在此字符串上使用json_decode时,会出现

我使用一个包含json字符串的文件来创建请求验证。我的一个测试中的JSON片段如下所示:

    {
        "name": "pattern",
        "attributes": [
            {
                "name": "pattern",
                "value": "^[\d]{2}$"
            }
        ]
    }

但是,当您尝试在此字符串上使用json_decode时,会出现json语法错误。它与正则表达式的内容有关。为什么会这样?有什么办法吗?

反斜杠需要转义:

  "value": "^[\\d]{2}$"
允许以下字符串标记:

除--或-\-或控制字符以外的任何Unicode字符 \ \\ \/ \b \f \n \r \t \四个十六进制数字
\d是不允许的。

反斜杠需要转义:

  "value": "^[\\d]{2}$"
允许以下字符串标记:

除--或-\-或控制字符以外的任何Unicode字符 \ \\ \/ \b \f \n \r \t \四个十六进制数字
\d是不允许的。

您需要转义掉\,因为\d在JSON中不是有效的控制字符。

您需要转义掉\,因为\d在JSON中不是有效的控制字符。

您可能应该用另一个反斜杠转义掉反斜杠``您可能应该用另一个反斜杠转义掉反斜杠`\`