Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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中使用正则表达式替换内部文本_Php_Regex - Fatal编程技术网

在两个符号之间查找内部文本,并在php中使用正则表达式替换内部文本

在两个符号之间查找内部文本,并在php中使用正则表达式替换内部文本,php,regex,Php,Regex,我一直在谷歌上搜索,并试图自己得到这个,但我不能,只有头痛。 我有这个字符串: "estamos en el registro {id} cuyo contenido es {contenido} por lo que veremos su {foto}" 我需要将{value}替换为$value,得到如下字符串 "estamos en el registro $id cuyo contenido es $contenido por lo que veremos su $foto" 可以在P

我一直在谷歌上搜索,并试图自己得到这个,但我不能,只有头痛。 我有这个字符串:

"estamos en el registro {id} cuyo contenido es {contenido} por lo que veremos su {foto}"
我需要将{value}替换为$value,得到如下字符串

"estamos en el registro $id cuyo contenido es $contenido por lo que veremos su $foto"
可以在PHP中使用正则表达式

提前感谢您的回答

这样做:

$replaced = preg_replace('~{([^}]*)}~', '$$1', $yourstring);
在上,请参见底部的替换

  • {
    与左大括号匹配
  • }
    匹配右大括号
  • ([^}]*)
    中,括号捕捉到组1
    [^}]*
    [^}]
    是一个负字符类,表示一个字符不是右大括号,
    *
    量词表示零次或多次
  • $$1
    将匹配项替换为文本
    $
    和捕获组的内容(
    $1
    • 这样做:

      $replaced = preg_replace('~{([^}]*)}~', '$$1', $yourstring);
      
      在上,请参见底部的替换

      • {
        与左大括号匹配
      • }
        匹配右大括号
      • ([^}]*)
        中,括号捕捉到组1
        [^}]*
        [^}]
        是一个负字符类,表示一个字符不是右大括号,
        *
        量词表示零次或多次
      • $$1
        将匹配项替换为文本
        $
        和捕获组的内容(
        $1

      是的,如果可能,您可以使用该功能执行此任务

      如果花括号始终保持平衡,则可以使用以下方法

      $text = preg_replace('/{(.*?)}/', '$$1', $text);
      

      是的,如果可能,您可以使用该功能执行此任务

      如果花括号始终保持平衡,则可以使用以下方法

      $text = preg_replace('/{(.*?)}/', '$$1', $text);
      

      太好了,这个效果很好,一个演示站点非常有用,我不知道正则表达式的网站,非常感谢。太好了,这个效果很好,一个演示站点非常有用,我不知道正则表达式的网站,非常感谢