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

时间:2014-06-26 02:59:17

标签: 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"

它可以在PHP中使用正则表达式

提前感谢您的回答

2 个答案:

答案 0 :(得分:2)

这样做:

$replaced = preg_replace('~{([^}]*)}~', '$$1', $yourstring);

the demo上,请参阅底部的替换。

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

答案 1 :(得分:2)

是的,您可以使用preg_replace()功能执行此任务。

如果大括号总是平衡的,您可以使用以下内容。

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

Working Demo