如何使用PHP删除字符串中不是a-z
/ A-Z
和0-9
以及_
的所有字符?
我尝试了但它没有效果,它返回相同的字符串:
preg_replace('[^a-zA-Z0-9_]', '', 'Testdo123_-:=)§%&');
答案 0 :(得分:4)
preg_
prefixed functions要求PCRE styled regular expression使用delimiters将正则表达式与optional flags/modifiers分开。
[
和]
作为分隔符,只留下^a-zA-Z0-9_
作为您的实际正则表达式。
所以试试这个(使用/
作为分隔符):
preg_replace('/[^a-zA-Z0-9_]/', '', 'Testdo123_-:=)§%&')
答案 1 :(得分:2)
看来你忘了分隔符了:
preg_replace('/\W+/', '', 'Testdo123_-:=)§%&');
\W
代表[^a-zA-Z0-9_]