我需要一个正则表达式preg_match()
,它应该preg(允许)以下字符:
字符串只能包含字母,数字和以下标点符号:
我不知道,如何在正则表达式上完成,但我认为有办法!
答案 0 :(得分:2)
^[\p{L}\p{N}.,_-]*$
将匹配仅包含(Unicode)字母,数字或您提到的“特殊字符”的字符串。 [...]
是character class,意思是“此处包含的其中一个字符”。您需要使用/u
Unicode修饰符才能工作:
preg_match(`/^[\p{L}\p{N}.,_-]*$/u', $mystring);
如果你只关心ASCII字母,那就更容易了:
^[\w.,-]*$
或者,在PHP中:
preg_match(`/^[\w.,-]*$/', $mystring);