【发布时间】:2013-07-25 12:58:39
【问题描述】:
我仍在努力理解 Regex 的工作原理。
我正在获取用户名,它们的格式如下:
firstname.lastname
这两个名称都可能包含特殊的国际字符,并且可能包含一个 ' 或 - 但我只需要检测它们是否包含任何大写字母,这样我就可以抛出异常。
我正在使用这个表达式
[^A-Z].[^A-Z]
在我看来这应该可行,但我只是不明白为什么它不可行。
希望有人能解释一下。
谢谢!
【问题讨论】:
-
你可以放弃正则表达式并简单地使用
if(yourString.Any(char.IsUpper)) {...} -
你应该照@w0lf所说的去做
-
我正在尝试使用正则表达式进行所有验证,因为在某些情况下我必须使用正则表达式并且我还需要学习它:)
-
[^A-Z] 只匹配 1 个字符而不是大写,就像上面所说的 '.'实际上匹配除换行符以外的任何字符。你可能想逃避它'\。'
标签: c# regex regex-negation