我对Regex'es很新,所以我想知道这是否可行?
取一个字符串并检查所有字符是A-Z还是a-z。
到目前为止,我最好的猜测是:
"^[A-Za-z]*$"
但是如果字符串中间的字符不是有效字符(fx。“aaa__aa”),那么它似乎有些麻烦。 Regex.IsMatch
返回true .. :(
[编辑] 对你的答案而不仅仅是正则表达式的一些评论会很棒:)
答案 0 :(得分:2)
试试这个
"^[A-Za-z]*$"
答案 1 :(得分:1)
我猜你想要
"^[A-Za-z]+$"
答案 2 :(得分:1)
你现在说的是什么 该字符串仅在包含0 - 9或无字符
之间的字符时才有效要检查字符是否为a-z或A-Z,您需要使用
^[A-Za-z]*$
其中说 该字符串仅在字符介于-z或A-Z(含)或无
之间时有效 修改强>
您编辑上一个正则表达式的新正则表达式工作正常,并且与下划线中的任何内容都不匹配。您的代码实现可能存在问题。
答案 3 :(得分:1)
是的,这应该有效。你或者喜欢使用类似的东西:
^[A-Za-z]+$
确保至少有一个字母字符。你用的是什么语言?在python中,使用isalpha()
函数可以更好地实现这一点。您选择的语言可能有类似的功能。此外,在正则表达式的许多实现中,您可以简单地执行:
^\a+$
在一些正则表达式实现中(特别是POSIX),+
必须是\+
。
答案 4 :(得分:1)
^[a-zA-Z]+$
应该做的工作。但是当你想用空格来抓住句子时,
^[a-zA-Z\s]+$
会更好,其中\ s表示这个空间。或者你甚至可以扩展它以捕捉标点符号。
答案 5 :(得分:0)
“aaa_aaa”仍然匹配,因为它匹配a的第一个块。 通过将'^'和'$'合并到表达式中,您指示line的开头首先匹配,然后是一个字母块,然后是行尾。这实际上意味着整个字符串必须与表达式匹配。
答案 6 :(得分:0)
using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main() {
if (Regex.IsMatch("aaa_aa", "^[a-zA-Z]*$"))
Console.WriteLine("Pigs can fly");
}
}