2014-02-19 116 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

啊,那麼正則表達式呢! –

相關問題