Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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/string/5.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_String_Replace_Preg Replace - Fatal编程技术网

Php 用特定格式替换字符串

Php 用特定格式替换字符串,php,string,replace,preg-replace,Php,String,Replace,Preg Replace,我有一个字符串,格式如下 some_string%value1:value2:value3:%some_anather_string%value4:value5:value6:% 我需要从字符串中删除%value1:value2:value3:%%和%value4:value5:value6:%%,我的意思是我需要删除任何格式为以%开头,以结尾的字符串:%%和以分隔的值: 这可能吗 我尝试使用str_replace(),但只有在我们知道值的情况下才有效。使用可以使用这个简单的正则表达式 ec

我有一个字符串,格式如下

 some_string%value1:value2:value3:%some_anather_string%value4:value5:value6:%
我需要从字符串中删除
%value1:value2:value3:%%
%value4:value5:value6:%%
,我的意思是我需要删除任何格式为以
%
开头,以
结尾的字符串:%%
和以
分隔的值:

这可能吗


我尝试使用
str_replace()
,但只有在我们知道值的情况下才有效。

使用可以使用这个简单的正则表达式

echo $str = preg_replace("~%(.*?):%~","", $str);

您已将其标记为[preg replace],这不是答案吗?但如何编写表达式?
%.*
,将匹配(包括)
%
之间的所有内容。您的要求有点模糊。是否可以在字符串中检查两次“:”?现在它检查%和:%?
%([^:::+?:){3}%
=三个组,由非冒号组成,以冒号结尾。您的答案很有用。但是可以检查字符串中出现两次“:”吗?现在它在%和:%s之间检查,现在它在%和:%之间检查,这是您的问题,对吗?请你详细说明一下,然后把你的预期结果公布出来好吗?