Php 正则表达式在每个单词周围加引号

Php 正则表达式在每个单词周围加引号,php,regex,Php,Regex,假设我有一根这样的线 $str = "this is my string"; 我需要一个正则表达式,以便 $str = "'this','is','my','string'"; 我知道有了这个 preg_match_all("#\w+#",$str,$mth); 我可以得到一个包含单个单词的数组,但我无法达到我的目标。 提前感谢。您可以使用explode代替: $parts = explode(" ", $str); 因此“$parts”将是[“this”、“is”、“my”、“stri

假设我有一根这样的线

$str = "this is my string";
我需要一个正则表达式,以便

$str = "'this','is','my','string'";
我知道有了这个

preg_match_all("#\w+#",$str,$mth);
我可以得到一个包含单个单词的数组,但我无法达到我的目标。
提前感谢。

您可以使用
explode
代替:

$parts = explode(" ", $str);
因此“$parts”将是[“this”、“is”、“my”、“string]的数组。然后您可以运行该数组并在每个单词周围添加引号,最后执行以下操作:

$final = implode(",", $parts);

如果您有单词数组,它只是一个简单的concat:

$quoted = '';
foreach($words as $word) {
    $quoted .= " '".$word."' ";
}

不需要正则表达式。

您可以使用
join
/
内爆来生成最终字符串

$str = "'". join("','", $mth). "'";
或者您可以直接使用一个preg\u replace

$str = "'". preg_replace("#\w+#", "','", $str). "'";

您必须使用正则表达式吗?您可以使用将所有空格更改为序列
,”
,然后在开头和结尾附加单引号:

$str = "'" . str_replace(" ", "','", $str) . "'";
def str=“弗雷德、萨姆、迈克、萨拉”
str.replaceAll(~“(\\\b)”,“'”)

这在Groovy中运行良好

Plain explode将在其他类型的空格或多空格上失败。谢谢迈克。我选择了你的答案,并给所有其他用户一个+1。谢谢大家。谢谢你。别忘了打勾,正式地将其标记为已回答。我的错。我想我在这方面跳了枪。我只是对人们说“谢谢你的帮助”感到恼火,然后永远消失在以太中。很高兴看到你不是他们中的一员:没有问题。如果你看一下我的个人资料,你会发现当我收到答复时,我总是接受祝你有愉快的一天仍然
内爆
,但是使用
$words=preg_split('/\W+/',$str,null,preg_split_NO_EMPTY)
然后您可以检查是否有任何单词,并且当有双空格时,列表中没有空字符串
'
$str = "'" . str_replace(" ", "','", $str) . "'";
def str = "Fred,Sam,Mike,Sarah"<br/>
str.replaceAll(~"(\\\b)", "'")