我怎样才能从字符串中删除所有字符不是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