-2
我需要一個正則表達式來我preg_match()
,應該預浸(允許)以下字符:的preg_match一些字符
字符串只能包含字母,數字和以下標點符號:
- 句號(。)
- 逗號(,)
- 破折號( - )
- 下劃線(_)
我不知道,如何在正則表達式上完成,但我認爲有一種方法!
我需要一個正則表達式來我preg_match()
,應該預浸(允許)以下字符:的preg_match一些字符
字符串只能包含字母,數字和以下標點符號:
我不知道,如何在正則表達式上完成,但我認爲有一種方法!
^[\p{L}\p{N}.,_-]*$
將匹配只包含(Unicode)字母,數字或您提到的「特殊字符」的字符串。 [...]
是character class,意思是「這裏包含的一個字符」。你需要使用/u
統一修改這個工作:
preg_match(`/^[\p{L}\p{N}.,_-]*$/u', $mystring);
如果你只關心ASCII字母,很容易:
^[\w.,-]*$
,或者在PHP:
preg_match(`/^[\w.,-]*$/', $mystring);
如果只有一種方法可以瞭解有關preg語法的更多信息,請參見:P – Rijk
是的,可以這樣做。請參閱http://www.php.net/manual/en/regexp.reference.character-classes.php或某些工具手冊http://stackoverflow.com/questions/32282/regex-testing-tools – mario
看看我發現的:http://www.regular-expressions.info/ –