2014-11-14 156 views
-1

“^ [a-z] + $”vs“[^ a-z] + $”之间的区别是什么?正则表达式克拉位置差

“^ [A-Z] + $”=这一个是什么,用字母

“[^ A-Z] + $” 开头=这一个是什么,但信

谁能证实?如果我错了,能有人给我“任何以字母开头”和“什么,但字母”正则表达式

编辑:

如何有关,如果我看到的组合正则表达式字母和数字,这是无效的。

[^一个-Z0-9] + $

或是

它[^ AZ] + [^ 0-9] + $

由于

+1

是的,正确的:)“小写字母” – 2014-11-14 20:19:14

+0

不要忘了“$”锚定终点。第一个不只是从小写字母开始,它只是从头到尾的小写字母。第二个可以以任何字母开头,但不能以字母开头,但必须以至少一个非小写字母结尾。 – jas 2014-11-14 20:26:29

回答

1

方括号在正则表达式中指定一个字符类 - 它匹配括号中的所有字符。

在字符类外,^匹配字符串的开始或行的开始(取决于是否使用m修饰符)。所以正则表达式^[a-z]+$与完全是字母的行匹配。如果您删除$(与字符串/行的末尾匹配),您将得到一个匹配任何以字母开头的正则表达式;在这种情况下,你也不需要+量词(任何以1或更多字母开头的东西也以1个字母开头)。

在字符类的开始处,^反转该类。与括号中的所有字符不匹配,它会匹配括号中的所有而不是的字符。所以[^a-z]+$匹配以非字母结尾的任何内容,因为$匹配字符串/行的结尾。如上所述,您不需要+,因为任何以一个或多个非字母结尾的内容都以一个非字母结尾。匹配时一切是一个正则表达式一个非字母是:

^[^a-z]+$ 

匹配时,有该行的任何非字母将是一个正则表达式:

[^a-z] 

即没有^$主播。

+0

@MladenUzelac链接不起作用,你的意思是这一个http://www.regexr.com/。 – 2014-11-14 20:23:23

+0

http://www.regexper.com/这是完全正确的链接 – 2014-11-14 20:59:34

1

“^ [A-ZA-Z] + $”=这一个是什么,用字母开头

“[^ A-ZA-Z] + $”=这一个是什么,但信

如果你想包括上限和字母用于可视化正则表达式

工具: Visualizing regular expressions