2012-10-11 39 views

回答

3

你應該使用一個簡單的正則表達式(無正向查找)獲得良好的性能:

^[0 :-]++$ 

其分解:

  • ^識別輸入的開始
  • []意味着任何字符在支架墊內CHES。
  • +表示前面的(括號)必須匹配1次或更多次。 ++使它possesive,提高性能。
  • $識別輸入的端
+0

+1順便說一句,'^ [0: - ] ++ $'應該更有效率。 –

+0

@AlixAxel,你怎麼看?我以前從來沒有見過++運營商。 – riwalk

+0

謝謝。正則表達式如何區分用作意義的連字符(如「a-z」)和被用作意義本身的意義? –

1

您可以使用一個範圍。

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

'{1,}'是一樣的'+'。另外,如果將它放在列表的開頭或結尾,則不需要'-'。 –

+0

是的,我首先回答,以便我有這個{}。 – Rayshawn

+0

屬實,但你應該知道你需要逃脫哪些字符。 – Rayshawn

2
/^[0\s:-]+$/ 
  • ^
  • [0\s:-]+ =一個或多個零,空格,連字符,結腸=開始。 +表示一個或多個,\s是任何空格字符,可能包括換行符和製表符。
  • $ =串

由於圖案被^$之間的錨定端,不超過那些在[]字符類其他字符將匹配。

如果不是任何空白字符,你只允許文字空間,使用方法:

/^[0 :-]+$/ 
相關問題