preg_replace-仅限字母,并将空格替换为加号


preg_replace - only letters and replace spaces for plus character

我想在字符串PHP中只接受字母,并将所有空格更改为加号(+)。此外,我只想接受一个接一个的加号。所以这个字符串:$string = 'ex,a-mpl*e s++tri ng';sholud替换为:$string = 'example+s+tri+ng';

我试过了:#[^a-zA-Z0-9'+']#但这对我没有帮助。

你能帮我吗?:)

编辑:

啊,我也想只接受字符串长度为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

只有字母和数字

你已经得到了你的正则表达式,只需使用它

$str = preg_replace('#[^a-zA-Z0-9'+']#', '', $str);

替换空格,去掉多个空格

$str = preg_replace('/'s+/', '+', $str);

如何解决这些问题

我不想粗鲁,但我粘贴的代码只是示例#4的一个小改动http://us2.php.net/en/preg_replace

因此,像这样的问题非常常见,php.net确实很好地将示例组合在一起。所以试着先在那里搜索!