Expresión regular arruinando json_decode ();

Estoy usando un archivo que contiene una cadena json para crear validaciones de solicitud. Una de las partes de JSON en una de mis pruebas se ve así:

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

Sin embargo, cuando intentas usar json_decode () en esta cadena, obtienes un error de syntax json. Tiene algo que ver con el contenido de la expresión regular. ¿Por qué y hay una forma de evitar esto?

La barra invertida debe ser escapada:

  "value": "^[\\d]{2}$" 

JSON permite los siguientes tokens en cadenas:

  • cualquier-Unicode-character-except- " -or- \ -or-control-character
  • \"
  • \\
  • \/
  • \b
  • \f
  • \n
  • \r
  • \t
  • \u four-hex-digits

\d no está permitido.

Necesita escapar de \ , ya que \d no es un caracter de control válido en JSON.