lai*_*ha0 5 c# regex regex-negation
我很难理解Regex的工作原理.
我收到用户名,他们采用以下格式:
firstname.lastname
Run Code Online (Sandbox Code Playgroud)
两个名称都可能包含特殊的国际字符,它们可能包含'或 - 但我只需要检测它们是否包含任何大写字母,这样我就可以抛出异常.
我正在使用这个表达式
[^A-Z].[^A-Z]
Run Code Online (Sandbox Code Playgroud)
在我看来,这应该工作,我只是不明白为什么它不.
我希望有人能解释一下.
谢谢!
[^A-Z] 简单地表示任何不是资本A到资本Z的字符.
.表示您应该使用的任何字符\.因为这意味着字面字符.
一个字符组是[],[^]然后反过来放置你想要匹配的字符.
但是,你的正则表达式看起来只匹配一个不是大写字母的单个字符,然后是任何字符,然后是另一个不是大写字母的单个字符
您想要使用以下内容:
[^A-Z]+\.[^A-Z]+
将+在正则表达式可以匹配所陈述的前1〜无限次.
如果您只打算使用此文本而不包含其他文本,则应包含行首和行尾标记,以使其与包含您提到的格式的长字符串不匹配.
但是,您的正则表达式也匹配空格和制表符.
所以我会使用以下内容:
^[^A-Z\s]+\.[^A-Z\s]+$
| 归档时间: |
|
| 查看次数: |
16399 次 |
| 最近记录: |