使用preg_replace PHP删除数字和标点符号

使用preg_replace PHP删除数字和标点符号,php,regex,preg-replace,Php,Regex,Preg Replace,我想在PHP中删除字符串的数字和标点符号(句号、逗号等),例如,我试过这样做 <?php $str = "Hello, lorem ipsum, dolor sit amet. Adipiscing90 elit. 1234567890. "; $text = preg_replace('/\d+/u', '', $str); echo $text; ?> 这仅删除数字,而不删除标点符号,因此: 你好,lorem ipsum,dolor sit amet。一位优秀的运动员

我想在PHP中删除字符串的数字和标点符号(句号、逗号等),例如,我试过这样做

<?php
 $str = "Hello, lorem ipsum, dolor sit amet. Adipiscing90 elit. 1234567890. ";
 $text = preg_replace('/\d+/u', '', $str);
 echo $text;
?>

这仅删除数字,而不删除标点符号,因此:

你好,lorem ipsum,dolor sit amet。一位优秀的运动员

我想要这样,没有逗号,没有句号,等等:

你好lorem ipsum dolor坐在amet Adipising Elite

如何修改preg_replace函数


我需要一些帮助。

[:punct:][/code>POSIX字符类和Unicode属性/类别类来匹配标点符号,但请注意它们并不相等。也可以匹配所有符号,事实上,
[:punct://code>=

因此,根据您的需求,使用

preg_replace('/[\d\p{P}]+/u', '', $str)


您可以在处检查属于每个类别的字符。

[:punct:][/code>POSIX字符类和Unicode属性/类别来匹配标点符号,但请注意它们并不相等。也可以匹配所有符号,事实上,
[:punct://code>=

因此,根据您的需求,使用

preg_replace('/[\d\p{P}]+/u', '', $str)

您可以随时检查属于每个类别的字符

输出为“Hello lorem ipsum dolor sit amet Adipising Elite”


输出为“Hello lorem ipsum dolor sit amet Adipising elit”

尝试模式
/[^\w\s]|\d/
。所以只保留字母和空格/[[:punct:]|\d/匹配标点符号和digits@miknik您不需要更改,只需将
\d
也放在character类中即可<代码>[:punct:][\d]+
@GrumpyCrouton它工作得很好!谢谢尝试一下模式
/[^\w\s]|\d/
。所以只保留字母和空格/[[:punct:]|\d/匹配标点符号和digits@miknik您不需要更改,只需将
\d
也放在character类中即可<代码>[:punct:][\d]+
@GrumpyCrouton它工作得很好!谢谢
preg_replace('/[\d\p{P}]/', '', $str)