我怎樣才能從字符串中刪除所有字符不是a-z
/A-Z
和0-9
和_
與PHP? 我試過,但沒有任何效果,它返回相同的字符串返回:正則表達式:從字符串中刪除沒有alnum字符
preg_replace('[^a-zA-Z0-9_]', '', 'Testdo123_-:=)§%&');
我怎樣才能從字符串中刪除所有字符不是a-z
/A-Z
和0-9
和_
與PHP? 我試過,但沒有任何效果,它返回相同的字符串返回:正則表達式:從字符串中刪除沒有alnum字符
preg_replace('[^a-zA-Z0-9_]', '', 'Testdo123_-:=)§%&');
的preg_
prefixed functions要求PCRE styled regular expression使用delimiters將正則表達式與optional flags/modifiers分開。
但你忘了分隔符。或者,確切地說:PHP以[
和]
作爲分隔符,只剩下^a-zA-Z0-9_
作爲您的實際正則表達式。
那麼試試這個(使用/
作爲分隔符):
preg_replace('/[^a-zA-Z0-9_]/', '', 'Testdo123_-:=)§%&')
您似乎忘記分隔符:
preg_replace('/\W+/', '', 'Testdo123_-:=)§%&');
\W
代表[^a-zA-Z0-9_]
'\ W'意味着是所有字符** **不字字符(也許你應該補充的解釋)。 – 2010-05-11 14:43:22
@Tim:他不使用分隔符,我猜 – SilentGhost 2010-05-11 14:44:33
請注意'\ w'及其補碼'\ W'取決於所使用的語言環境。 – Gumbo 2010-05-11 14:46:45