2011-09-08 49 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