[英]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.