2011-09-08 59 views
0

有人可以總結一下這個正則表達式會做什麼嗎?這個正則表達式有什麼作用?

ValidationExpression="^[a-zA-Z0-9'.\s\-&\(\)]*$" 

有什麼在線工具可以總結這個嗎?

+0

基本上它只允許括號內的字符,而不考慮字符串的長度。 – yoda

+1

'Stackoverflow'是你的'在線工具',只是把你的正則表達式問題,並得到由專家的細節:p –

回答

2

^ and $是將epxression錨定到字符串的開始和結尾的錨點。

[a-zA-Z0-9'.\s\-&\(\)]是一個字符類,它允許任何字符的[]

a-z內部是一個字符範圍( - 在該範圍操作者在這裏),這意味着所有的字符從A到Z。

\s是一個空白字符(空格,製表,換行)

\(是文字(\爲逸出

*是量詞,其允許字符類中0個或多個字符。

這意味着您的正則表達式可以匹配空字符串或僅包含字符類內部字符的字符串。

+0

如果我想包括字符'%'和'+',我需要逃避那些? – DaveDev

+0

@DaveDev不在字符類中,你可以添加它們。像這樣'[a-zA-Z0-9'。\ s \ - &\(\)%+]' – stema

+0

@stema你不需要轉義「+」? – DocWiki

0

這裏有個錯誤,我會說。與任何字符匹配的時間段可能應該只能匹配字符 . ......否則,它將匹配任何行。

假設週期被轉義, 它將匹配只包含字母,數字,' S,. S,空白,- S,& S和括號一條線,但這些的任意數量或組合。

+0

我不確定這是因爲我已經測試過這個字符,比如'+',''''''和'^',並且所有這些都被捕獲。 – DaveDev

+1

你不需要轉義角色類中的點。 – stema

+0

真的嗎?哇,我一直在逃避它,不需要_years_。感謝啓發! :D – carlpett

3

要回答 -

是否有可以總結這個任何在線工具?

嘗試 - http://gskinner.com/RegExr/

你可以輸入一個正則表達式,然後將鼠標懸停在相關位,它會解釋這是怎麼回事。

+2

+1偉大的工具,忘了回答這部分的問題。 – stema

3

Regular Exprression Analyzer的輸出this

Parse Result: Success! 
- Sequence: match all of the followings in order 
    - BeginOfLine 
    - Repeat 
      - AnyCharIn[ a to z A to Z 0 to 9 ' . WhiteSpaceCharacter - & ()] 
      - zero or more times 
- EndOfLine 
+0

+1看起來我必須將此鏈接添加到我的工具箱中。 – stema

0

此正則表達式是針對完全匹配是否有字符串中的任何內容,或者如果字符串是空的,它將匹配。 ^表示匹配從開始和$匹配到字符串結束。他們被稱爲anchors

這個[]被稱爲character class,裏面的每個東西都是允許的字符串。

順便提一下,正則表達式可以更簡化爲(?i)^[a-z0-9'.\s\-&\(\)]$(?i)ignore case flagin-case sensitive match

相關問題