我想在字符串 PHP 中仅接受字母并更改加号(+)字符的所有空格。此外,我想只接受一个加号彼此相邻。所以这个字符串:
$string = 'ex,a-mpl*e s++tri ng';
sholud替换为:
$string = 'example+s+tri+ng';
我试过这样的话:
#[^a-zA-Z0-9\+\]#
但这对我没有帮助。
编辑:
aahh,我也想接受字符串长度为3或更多的字符串。
答案 0 :(得分:3)
尝试这样的事情可能是一个很好的起点:
$string = 'ex,a-mpl*e s++tri ng';
$pattern = array(
'/([^a-zA-Z\+\s])/',
'/(\+|\s)+/'
);
$replacement = array('', '+');
$result = preg_replace($pattern, $replacement, (strlen($string) > 3) ? $string : false);
var_dump($result); //<- return an empty string if the length is < 3
答案 1 :(得分:0)
你已经获得了你的正则表达式,只需使用它
$str = preg_replace('#[^a-zA-Z0-9\+\]#', '', $str);
$str = preg_replace('/\s+/', '+', $str);
我不想粗鲁,但我粘贴的代码只是稍微改变了示例#4 http://us2.php.net/en/preg_replace
所以请这样的问题很常见,php.net在将示例放在一起时确实做得很好。所以先尝试在那里搜索!