C# Regex: Checking for “a-z” and “A-Z”
我想检查在a-z或a-z之间的字符中输入的字符串。不知何故,我的正则表达式似乎没有接收到它。它总是返回真。我不知道为什么,我认为这与我如何编写正则表达式有关。任何帮助都将不胜感激。
1 2 3 4 5 6 7 8 9 10 11 12 13 | private static bool isValid(String str) { bool valid = false; Regex reg = new Regex((@"a-zA-Z+")); if (reg.Match(str).Success) valid = false; else valid = true; return valid; } |
型
1 |
- 百万千克1
型
需要
型
正确的方法是这样的:
1 2 3 4 | private static bool isValid(String str) { return Regex.IsMatch(str, @"^[a-zA-Z]+$"); } |
号
此代码具有以下优点:
- 百万千克1每次使用静态方法而不是创建新实例:静态方法缓存正则表达式百万千克1百万千克1修复了regex。它现在匹配由一个或多个字符a-z或a-z组成的任何字符串。不允许使用其他字符。百万千克1百万千克1短得多,可读性强。百万千克1
型
型
使用
1 | Regex.IsMatch(@"^[a-zA-Z]+$"); |