2014-02-19 70 views
1

我期待从字符串中“修剪”非字母数字,类似于trim()如何处理空白。如何删除PHP中的前导和尾随非字母数字字符?

帮我转换#str|ng#str|ng

我可以删除尾随非字母数字有:

$string = preg_replace('/\W+$/', '', $string); // converts `#str|ng#` to `#str|ng` 

与领先:

$string = preg_replace('/^\W+/', '', $string); // converts `#str|ng#` to `str|ng#` 

但我怎么能做到既在同一时间?

回答

5

尝试使用模式是这样的:

$string = preg_replace('/^\W+|\W+$/', '', $string); 

这将取代任何非单词字符(注意,这不包括下划线),这显示在在字符串的开头或结尾。 |是一个交替,它将匹配任何匹配左边的模式或右边的模式的字符串。

如果您还需要删除下划线,使用字符类是这样的:

$string = preg_replace('/^[\W_]+|[\W_]+$/', '', $string); 
1

你不需要正则表达式,使用trim()并指定要修剪什么(它在默认情况下修剪空格):

$string = trim($string, "#"); 

文档:http://php.net/trim

+0

哈!德勤。不幸的是,我真实的情况并不那么干净。 – Ryan

+0

啊,那么正则表达式呢! –

相关问题