【问题标题】:C# Regular Expression to match letters, numbers and underscoreC#正则表达式匹配字母、数字和下划线
【发布时间】:2009-05-20 02:08:45
【问题描述】:

我正在尝试在 C# 中创建正则表达式模式。该模式只能允许:

  • 信件
  • 数字
  • 下划线

到目前为止,我运气不佳(我不擅长 RegEx)。这是我迄今为止尝试过的:

// Create the regular expression
string pattern = @"\w+_";
Regex regex = new Regex(pattern);

// Compare a string against the regular expression
return regex.IsMatch(stringToTest);

【问题讨论】:

    标签: c# regex


    【解决方案1】:

    编辑:

    @"^[a-zA-Z0-9\_]+$"
    

    @"^\w+$"
    

    【讨论】:

    【解决方案2】:

    @"^\w+$"

    \w 匹配任何“单词字符”,定义为数字、字母和下划线。它支持 Unicode,因此它会匹配带有变音符号等的字母(比尝试滚动您自己的字符类(如 [A-Za-z0-9_] ),它只会匹配英文字母)。

    开头的^表示“匹配字符串的开头”,末尾的$表示“匹配字符串的结尾”。没有这些,例如如果你只有@"\w+",那么 "@@Foo@@" 会匹配,因为它包含一个或多个单词字符。使用 ^ 和 $,则 "@@Foo@@" 将不匹配(这听起来像您要查找的内容),因为您没有字符串开头后跟一个或多个单词-字符后跟字符串结尾。

    【讨论】:

      【解决方案3】:

      尝试使用 http://www.weitz.de/regex-coach/ 之类的东西,让您以交互方式开发正则表达式。

      它是为 Perl 设计的,但帮助我了解了正则表达式在实践中的工作原理。

      【讨论】:

        【解决方案4】:

        正则表达式

        packedasciiRegex = new Regex(@"^[!#$%&'()*+,-./:;?@[\]^_]*$");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-28
          • 2010-09-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多