C#正则表达式匹配字母,数字和下划线

时间:2009-05-20 02:08:45

标签: c# regex

我正在尝试在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);

4 个答案:

答案 0 :(得分:33)

编辑:

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

@"^\w+$"

答案 1 :(得分:20)

@ “^ \ W + $”

\ w匹配任何“单词字符”,定义为数字,字母和下划线。它具有Unicode感知能力,所以它会与变音符号等字母匹配(比试图像[A-Za-z0-9_]那样只能匹配英文字母的字符集更好)。

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

答案 2 :(得分:3)

尝试尝试使用http://www.weitz.de/regex-coach/这样的内容,让您以交互方式开发正则表达式。

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

答案 3 :(得分:-1)

正则表达式

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