Php 从字符串中删除通配符

Php 从字符串中删除通配符,php,regex,preg-replace,Php,Regex,Preg Replace,我不擅长正则表达式。 在我的地址中,我有以下通配符: !@$%^&*()_+./\;' “ 我想用preg_replace将上述地址中的通配符替换为nothing 如果我有这样的地址 纽约州XYZ路453号街道/城市 它应该被替换为 街道453路城市州 什么是合适的模式 谢谢使用: 注\必须写成\\\\,/必须写成\/ 请参阅。使用: 注\必须写成\\\\,/必须写成\/ 请参阅。您可能只是在寻找 \W+ 请参阅。 您在示例中也消除了XYZ,但这可能不是有意的。您可能只是在寻找 \W+ $t

我不擅长正则表达式。 在我的地址中,我有以下通配符:
!@$%^&*()_+./\;' “

我想用preg_replace将上述地址中的通配符替换为nothing

如果我有这样的地址

纽约州XYZ路453号街道/城市

它应该被替换为

街道453路城市州

什么是合适的模式

谢谢

使用:

\
必须写成
\\\\
/
必须写成
\/

请参阅。

使用:

\
必须写成
\\\\
/
必须写成
\/


请参阅。

您可能只是在寻找

\W+
请参阅。

您在示例中也消除了
XYZ
,但这可能不是有意的。

您可能只是在寻找

\W+
$text = "Street # 453, XYZ - Road. / City, State.";
$text = preg_replace('[\W+]', '', $text);
echo($text);
请参阅。
您在示例中也消除了
XYZ
,但这可能不是有意的

$text = "Street # 453, XYZ - Road. / City, State.";
$text = preg_replace('[\W+]', '', $text);
echo($text);
更新:

您可以简单地使用\W+(与[^a-zA-Z0-9]相同),如果不需要下划线,也可以使用[^a-zA-Z0-9]

“^”字符在正则表达式中表示“NOT”。因此,任何不是“^”后面的字符都将被替换

您可以使用此网站检查您的正则表达式模式:

更新:

您可以简单地使用\W+(与[^a-zA-Z0-9]相同),如果不需要下划线,也可以使用[^a-zA-Z0-9]

“^”字符在正则表达式中表示“NOT”。因此,任何不是“^”后面的字符都将被替换

您可以使用此网站检查您的正则表达式模式:

Research
字符类
,这是一项非常简单的正则表达式任务。(需要4个字符,包括
preg\u replace
的分隔符)例如,请参见Research
字符类
。这是一项非常简单的正则表达式任务。(需要4个字符,包括
preg\u replace
的分隔符)例如,请参见或答案仍然错误,请记住,
[\W+]
\W+
仍然不同-尽管我的旧注释已被无故删除。您将想要的量词放在字符类中,这意味着正则表达式引擎查找的是“不是单词字符或加号”“这基本上是多余的。此步骤在每个字符上重复。另外,您复制了解决方案。答案仍然是错误的,请记住,
[\W+]
仍然与
\W+
不同-尽管我的旧注释已被无故删除。您将想要的量词放在character类中,这意味着regex引擎寻找“不是单词字符或加号”,这本质上是多余的。此步骤在每个字符上重复。而且你复制了解决方案。