我知道如何使用preg_replace()去除多余的空格,破折号和句点,但是我需要知道以下哪种格式对于去除字符串中的多余星号是正确的.
这些代码行用于去除多余的空格,破折号和句点:
// Strips out extra spaces
$string = preg_replace('/\s\s+/', ' ',$string);
// Strips out extra dashes
$string = preg_replace('/-+/', '-', $string);
// Strips out extra periods
$string = preg_replace('/\.+/', '.', $string);
以下哪项对去除多余的星号是正确的?
// Version 1: Strips out extra asterisks
$string = preg_replace('/\*+/', '*', $string);
// Version 2: Strips out extra asterisks
$string = preg_replace('/*+/', '*', $string);
先感谢您.
顺便说一句,是否有列表显示使用PHP时需要用正斜杠转义的所有字符?
解决方法:
尝试这个:
$string = preg_replace('/\*{2,}/', '*', $string);
这会将多个星号彼此相邻的任何实例替换为一个星号.
或者,如果您想消除所有星号:
$string = preg_replace('/[\*]+/', '', $string);
值得注意的是*是正则表达式中的特殊字符;因此,您必须使用反斜杠将其转义.
另外,这是一个很好的正则表达式参考:
http://www.regular-expressions.info/reference.html
这是将多个字符替换组合到一个正则表达式中的方法:
$string = preg_replace('/(\*|\.){2,}/', '$1', $string);
这将替换星号以及句点.