2014-09-25 79 views
1

匹配单个字符按照MSDN documentation.字符在.NET正则表达式

匹配除的\ n任何单个字符。

在这种情况下,为什么会发生这种正则表达式不匹配?:

Regex.IsMatch("c",@"[.]") 
+1

http://regexpal.com/此网站对正则表达式实验很有帮助。 – 2014-09-25 13:08:29

+0

干杯。我通常使用它。看来我并不知道你不能在字符组中使用通配符。其中一件令人惊讶的事情在未发现的情况下得以实现。 – richzilla 2014-09-25 13:11:40

回答

5

你匹配[.]这意味着字符.。用刚刚.让你的结果。 []是指里面的任何字符。所以由.就失去了它的特殊含义。

查看演示。

http://regex101.com/r/qC9cH4/19

c正由第二组不是第一个捕获。

1

您不能在[]内使用.来获取所有字符。删除[],它会工作。

1

更换@"[.]";@"."; //使用.

1

你可以使用:

Console.WriteLine(Regex.IsMatch("c", @".")); 

如果你这样做的时候,再加入

public static class Extensions 
{ 
    public static bool Match(this string value, String query) 
    { 
     return Regex.IsMatch(value, query); 
    } 

    public static void Out<t>(this t value) 
    { 
     Console.WriteLine(value); 
    } 
} 

后,您可以使用

"c".Match(".").Out(); 
+0

非常真实(事实上,我已经有了各种字符串操作的扩展方法)。我知道代码可以更简洁,其故意冗长,因为我想确保我没有错过任何东西,直到id工作了。 – richzilla 2014-09-25 13:22:17