我正在尝试在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);
答案 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(@"^[!#$%&'()*+,-./:;?@[\]^_]*$");