我可以使用正则表达式验证完整字符串吗?

时间:2009-07-15 12:16:29

标签: regex

我对Regex'es很新,所以我想知道这是否可行?

取一个字符串并检查所有字符是A-Z还是a-z。

到目前为止,我最好的猜测是:

"^[A-Za-z]*$"

但是如果字符串中间的字符不是有效字符(fx。“aaa__aa”),那么它似乎有些麻烦。 Regex.IsMatch返回true .. :(

[编辑] 对你的答案而不仅仅是正则表达式的一些评论会很棒:)

7 个答案:

答案 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");
  }
}