2012-03-18 131 views
1

我正在嘗試寫超過2個連續字母的.Net正則表達式。.net正則表達式超過2個連續字母

aa - fine 
Aa - fine 
aaa - not allowed 
Aaa - not allowed 

我是新來的正則表達式,但是這是我迄今拼湊起來。

if (Regex.IsMatch(Password, @"/[^A-Za-z]{2}/")) 
    return "Password cannot contain 3 consecutive same letters"; 

我不確定這是否接近或不接近。

+0

我認爲你在尋找什麼是簡單的'\ 1 \ 1'()。你有正則表達式匹配2個任何字母,如'ab'。 – 2012-03-18 17:26:34

+0

@Ilia G - '(。)\ 1 \ 1'適用於'AAA'和'aaa',但不適用'Aaa'或'aaA'。 D'哦! – ridgerunner 2012-03-18 18:02:36

+2

@ridgerunner'Regex.Match(「bOooga」,@「(。)\ 1 \ 1」,RegexOptions.IgnoreCase)'也可以在運行像ruakh這樣的正則表達式之前輸入大寫/小寫。 – 2012-03-18 18:07:32

回答

5

您需要刪除斜槓(爲什麼它們在那裏?這不是PHP),您可以使用忽略大小寫標誌。像:

Regex.Match(pw, @"(?i)(.)\1\1") 

這是一樣的:

Regex.Match(pw, @"(.)\1\1", RegexOptions.IgnoreCase) 

正如評論說伊利亞G.

+0

哦,很酷,不知道你可以嵌入到正則表達式本身的選項。 – 2012-03-20 02:33:56

相關問題