使用preg_replace PHP删除数字和标点符号
我想在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
$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)