PHP - 如何编写正则表达式来检查字符串是否只包含某些字符?

时间:2012-10-11 19:19:28

标签: php regex string

我几乎没有编写正则表达式的经验。我如何检查字符串是否只包含零,空格,连字符和冒号?谢谢!

3 个答案:

答案 0 :(得分:3)

使用简单的正则表达式(无正向查找)应该可以获得良好的性能:

^[0 :-]++$

打破它:

  • ^识别输入的开头
  • []表示括号内的任何字符匹配。
  • +表示前面的(括号)必须匹配1次或更多次。 ++使其成为possesive,从而提高了效果。
  • $识别输入结束

答案 1 :(得分:2)

/^[0\s:-]+$/ 
  • ^ =字符串开头
  • [0\s:-]+ =一个或多个零,空格,连字符,冒号。 +表示一个或多个\s是任何空格字符,可能包含换行符和标签。
  • $ =字符串结尾

由于模式锚定在^$之间,因此[]字符类中的字符之外的字符不会匹配。

如果您只允许文字空格而不是任何空白字符,请使用:

/^[0 :-]+$/ 

答案 2 :(得分:1)

您可以使用范围。

^[0 \-:]{1,}$