(见评论)
标题说明了一切......
我以为我可以写RE(在Java或论文中做过非常复杂的)。现在我无法编写这个我需要在ASP.NET MVC模型属性中验证用户名的简单方法。我会说"\\.*\\w\\.*"
应该根据我找到的资源运作。但它没有......
修改
以下是我的模型代码中的内容:
以下是发生的诽谤:
正如您所见,字符串a12
不匹配,但它应该......
答案 0 :(得分:2)
new Regex(@"\w")
,例如new Regex(@"\w").IsMatch(" 1 ")
返回true。
在评论中,您说希望字母匹配,希望new Regex(@"[\p{L}]")
为new Regex(@"[\p{L}]").IsMatch(" a ")
返回true,但new Regex(@"[\p{L}]").IsMatch(" 1 ")
返回false。
您可以更具体,将其视为new Regex(@"[\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]")
,其中特别寻找小写,大写,标题,修饰符和其他字母,以防其中一个类别不受欢迎。例如。不要将修饰符字母视为“单词字符”,而是使用新的Regex(@"[\p{Ll}\p{Lu}\p{Lt}\p{Lo}]")
如果正则表达式必须匹配整个表达式,那么.*\p{L}.*
之类的表达式就可以了。
如果您需要仅匹配单词字符(禁止所有其他字符),那么您需要new Regex(@"^[\p{L}]+$")
,这意味着:表达式开头,一个或多个字母,结束表达式。< / p>
答案 1 :(得分:1)
怎么样:
(\w)+
它将返回所有单词
答案 2 :(得分:0)
尝试您的RegEx,如下所示:
String data = "drasto";
Regex regex = new Regex(".*\\w.*");
var coll = regex.Matches(data);
foreach(var match in coll)
{
Debug.Writeline(match.ToString());
}
这应该适用于您的目的。