假设我有一个像这样的字符串
$str = "this is my string";
我需要一个正则表达式才能拥有
$str = "'this','is','my','string'";
我知道这个
preg_match_all("#\w+#",$str,$mth);
我可以用单个单词获得一个数组,但我无法达到目标。 提前谢谢。
答案 0 :(得分:4)
$str = "'" . implode("','", explode(' ', $str)) . "'"
不需要正则表达式。
答案 1 :(得分:2)
您可以改为使用explode
:
$parts = explode(" ", $str);
因此“$ parts”将是[“this”,“is”,“my”,“string]的数组。然后你可以遍历数组并在每个单词周围添加引号并最终执行:
$final = implode(",", $parts);
答案 2 :(得分:2)
你必须使用正则表达式吗?您可以使用str_replace将所有空格更改为序列','
,然后在开头和结尾添加单引号:
$str = "'" . str_replace(" ", "','", $str) . "'";
答案 3 :(得分:1)
如果你有一系列单词,那只是一个简单的结论:
$quoted = '';
foreach($words as $word) {
$quoted .= " '".$word."' ";
}
答案 4 :(得分:1)
您可以使用join
/ implode
生成最终字符串。
$str = "'". join("','", $mth). "'";
或者您可以直接使用preg_replace
:
$str = "'". preg_replace("#\w+#", "','", $str). "'";
答案 5 :(得分:0)
def str = "Fred,Sam,Mike,Sarah"<br/>
str.replaceAll(~"(\\\b)", "'")
这在Groovy中运行良好。 (版本 - 1.8.4)