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

use*_*192 23 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);
Run Code Online (Sandbox Code Playgroud)

Joe*_*ite 22

@ "^\w + $"

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

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