Php 替换除字母、数字、空格和下划线以外的所有字符

Php 替换除字母、数字、空格和下划线以外的所有字符,php,regex,preg-replace,ereg-replace,Php,Regex,Preg Replace,Ereg Replace,我希望替换字符串中除字母、数字、空格和下划线以外的所有字符 有人能举个例子吗?我通常会使用以下内容: $string = preg_replace("/[^ \w]+/", "", $string); 将所有非空格和非单词字符替换为零。 <?php $string = 'April 15, 2003'; $pattern = '/[^\w ]+/'; $replacement = ''; echo preg_replace($pattern, $replacement, $string)

我希望替换字符串中除字母、数字、空格和下划线以外的所有字符


有人能举个例子吗?

我通常会使用以下内容:

$string = preg_replace("/[^ \w]+/", "", $string);
将所有非空格和非单词字符替换为零。


<?php
$string = 'April 15, 2003';
$pattern = '/[^\w ]+/';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
?>

是您要替换的。

您发现哪些示例不起作用?它们是如何不起作用的呢?我还要补充一点,对于各种各样的字符串操作问题,如果你提供一个或两个具体的例子,说明你将在操作中得到什么,以及你希望从操作中得到什么,这有助于得到正确的答案。这个例子在一个类似的问题上帮助了我。谢谢(对于阅读本文的其他人,请不要忘记将其用如下斜杠括起来:
$new\u string=preg\u replace('/[^0-9a-zA-Z\u]/',“,$old\u string)
我取出了\s,因为我不需要允许空格。
\s
并不总是意味着空格…您应该在PHP
preg\u replace('/[^\w]+/',“,”,“,$string)中对正则表达式使用单引号)
双引号中带\可能会导致意外行为。您应该说所有非英语字符,例如,它也会删除西里尔字母符号
[^0-9a-zA-Z_\s]