[英]php preg_replace regex replace string between two string
我有以下问题:我想替换(在 php 中)一个特殊字符,但前提是它在其他两个字符之间。 它试图用 preg_replace 找到一个解决方案,但它不起作用。
我想更换每一个; 带有 : 介于 " 之间的示例:
$orig_string= 'asbas;"asd;";asd;asdadasd;"asd;adsas"'
结果应该是:
'asbas;"asd:";asd;asdadasd;"asd:adsas"'
我尝试了几个正则表达式,但没有任何成功......
我试过的两个例子:
$result = preg_replace('(?<=\")(.*)(;)(.*)(?=\")',':', $str);
$result = preg_replace('.*\".*(;).*\"',':', $str);
有谁能够帮助我?
非常感谢
伏
一个简单易懂的解决方案可能是使用preg_replace_callback :
$str = preg_replace_callback('/"[^"]+"/',
function ($m) { return str_replace(";", ":", $m[0]); },
$str);
"[^"]+"
将引用的内容捕获到$m[0]
,其中;
被替换为:
在 eval.in 上查看测试(链接即将过期)
字符串替换呢?
str_ireplace(';";', ':";', $orig_string);
asbas;"asd:";asd;asdadasd;"asd;adsas"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.