Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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_String - Fatal编程技术网

Php 如何替换只知道开头和结尾的字符串?

Php 如何替换只知道开头和结尾的字符串?,php,regex,string,Php,Regex,String,我在php中有一个字符串,其中有一个标记: $str = "bla bla {video something} bla bla"; 其中,某物可以是任何东西 我现在想用替换{video something}。我想我需要一个正则表达式来做这个,但我有点迷失在正则表达式的事情中。有人知道我怎么做吗 欢迎所有提示 如果要替换所提供字符串中以视频开头的大括号之间的所有内容,可以使用: <?php $str = "bla bla {video something} bla bla"; $str=

我在php中有一个字符串,其中有一个标记:

$str = "bla bla {video something} bla bla";
其中,
某物
可以是任何东西

我现在想用
替换
{video something}
。我想我需要一个正则表达式来做这个,但我有点迷失在正则表达式的事情中。有人知道我怎么做吗


欢迎所有提示

如果要替换所提供字符串中以视频开头的大括号之间的所有内容,可以使用:

<?php

$str = "bla bla {video something} bla bla";
$str=preg_replace ('/{(.*?)}/',"<iframe id=123>",$str);
echo $str;

解释

  • 匹配开头的花括号
    {
  • 一个正向前瞻
    (?=video.*?})
    ,它断言接下来的是视频,直到最后一个大括号
  • 在组中捕获任何非贪婪的字符
    (.*)
  • 匹配右大括号
    }
例如:

$string = "bla bla {video something} bla bla";
$string = preg_replace ('/{(?=video.*?})(.*?)}/',"<iframe id=123>", $string);
echo $string;
$string=“bla bla{video something}bla bla”;
$string=preg_replace('/{(?=video.*?})(.*?}/','',$string);
echo$字符串;

可以使用这个正则表达式:
/{video\h+[^}]+}/
preg\u replace('/{video\h+[^}]+}/',''.$str)
(?您能提供更多信息吗,也许是更多的示例字符串?还有您所宣称的“已知”的确切内容,但没有具体说明。