Php 用逗号替换空格和换行符

Php 用逗号替换空格和换行符,php,regex,Php,Regex,在我的preg_中,在这里替换正则表达式 $string = preg_replace('~[^[:alnum:],]*,[^[:alnum:]]*~', ',', $string); 我一直在尝试用逗号将单词彼此分开,这很管用,但后来我尝试了一个字符串,比如 x y z 及 为了用替换空格和换行符,所以我尝试使用[[:space:]和[[:blank:]]编写了 如何处理新的生产线?我试着用我以前的替代品/[\s,]+/替换换行符和空格,但仍然没有效果,我知道我可以进行两个类似的查询 $s

在我的preg_中,在这里替换正则表达式

$string = preg_replace('~[^[:alnum:],]*,[^[:alnum:]]*~', ',', $string);
我一直在尝试用逗号将单词彼此分开,这很管用,但后来我尝试了一个字符串,比如

x
y
z

为了用替换空格和换行符,所以我尝试使用
[[:space:]
[[:blank:]]
编写了

如何处理新的生产线?我试着用我以前的替代品
/[\s,]+/
替换换行符和空格,但仍然没有效果,我知道我可以进行两个类似的查询

$string = preg_replace('/[\s,]+/', ',', $string);
$string = preg_replace('~[^[:alnum:],]*,[^[:alnum:]]*~', ',', $string);
但是为了提高性能,我更喜欢将它们合并到一个
RegEx

尝试以下方法:

preg_replace("'/[^[:alnum:],]*,[^[:alnum:]]*|[\s,]+/'", ",", $string);

它将用
逗号替换所有空格和新行。

发布
$string
内容,因为您的正则表达式需要
。您当前的字符串
x y z
@WiktorStribiżew中没有逗号,现在解决了它。@WiktorStribiżew这个问题,我实际上认为
只能用于匹配两部分中的一部分
(a | b)
。你真的开悟了。@WiktorStribiż取消你的权利,忘记添加替换项。但是,OP应该发布此问题中的所有相关信息。@mega6382 OP已经尝试了第二个代码。这对他们不起作用。看看他们的问题
preg_replace("'/[^[:alnum:],]*,[^[:alnum:]]*|[\s,]+/'", ",", $string);