讓我們假設我有這樣正則表達式把引號圍繞每個字
$str = "this is my string";
我需要以正則表達式的字符串有
$str = "'this','is','my','string'";
我知道,這一個
preg_match_all("#\w+#",$str,$mth);
我可以用單個單詞獲得數組,但我無法達到我的目標。 在此先感謝。
讓我們假設我有這樣正則表達式把引號圍繞每個字
$str = "this is my string";
我需要以正則表達式的字符串有
$str = "'this','is','my','string'";
我知道,這一個
preg_match_all("#\w+#",$str,$mth);
我可以用單個單詞獲得數組,但我無法達到我的目標。 在此先感謝。
$str = "'" . implode("','", explode(' ', $str)) . "'"
不需要正則表達式。
你可以使用explode
代替:
$parts = explode(" ", $str);
因此,「$零件」將是[「這」,「是」,「我的」,「串]然後,你可以通過運行陣列。圍繞每一個字的數組,並添加引號和最後做:
$final = implode(",", $parts);
在其他類型的空格或多空格中發生純粹爆炸將失敗。 – erenon 2011-03-03 18:55:52
如果你有話的陣列,它只是一個簡單的CONCAT:
$quoted = '';
foreach($words as $word) {
$quoted .= " '".$word."' ";
}
Missing the commas .. – mellamokb 2011-03-03 18:55:56
您可以使用join
/implode
來生成最終字符串。
$str = "'". join("','", $mth). "'";
或者你可以只使用直接preg_replace
:
$str = "'". preg_replace("#\w+#", "','", $str). "'";
你必須使用正則表達式?您可以使用str_replace所有的空間更改爲序列','
然後追加單引號開頭和結尾:
$str = "'" . str_replace(" ", "','", $str) . "'";
def str = "Fred,Sam,Mike,Sarah"<br/>
str.replaceAll(~"(\\\b)", "'")
這在Groovy效果很好。 (版本 - 1.8.4)
謝謝邁克。我選擇你的答案,並給所有其他用戶+1。感謝大家。 – 2011-03-03 19:01:51
謝謝。不要忘記打勾,正式將其標記爲已回答。 – 2011-03-03 19:03:50
別擔心。我正在等那個論壇讓我這麼做;) – 2011-03-03 19:05:50