2014-09-25 119 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