2013-11-03 103 views
0

我需要一個正則表達式,用於一些必須匹配字符串的參數。正則表達式.NET

這裏是......

  1. 字符串存在了至少8的連接最多20個字符。

  2. 此字符串的這些字符可以是alfabet的字符或特殊字符的除了從空格

  3. --with其他words..all charachters在完整的字符串有至少要包含1號。

  4. 字符串不能以數字或下劃線

  5. 字符串的最後2個字符必須是相同的開始,但它事doenst如果這些最後--identical字符是資本和非資本(情況不區分大小寫)

必須匹配所有:

+234567899 
a_1de*Gg 
xy1Me*__ 
!41deF_hij2lMnopq3ss 
C234567890123$^67800 
*5555555 
sDF564zer"" 
!!!!!!!!!4!!!!!!!!!! 
abcdefghijklmnopq9ss 

可能不匹配:

不能是小於8個或更多,然後20個字符:

a_1+Eff 
B41def_hIJ2lmnopq3stt 

不能包含空白:

A_4 e*gg 
b41def_Hij2l nopq3ss 

不能以數字或下劃線開頭: __1 + Eff 841DEf_hij2lmnopq3stt

不能以2個不同字符結尾:

a_1+eFg 
b41DEf_hij2lmnopq3st 

不能沒有的串中的:

abCDefghijklmnopqrss 
abcdef+++dF 
!!!!!!!!!!!!!!!!!!!! 
------------------------------------------------------ 

這是我迄今爲止...但我真的打破我這個頭...... ,如果你不「知道完全的答案是沒有問題的...... 我只是想在正確的方向

([^0-9_])(?=.*\d)(\S{8,20})(?i:[\S])\1 
+0

已經分配了幫助...剩下的唯一問題就是這個答案:^ [^ _ \ s \ d](?=。* \ d)\ S {5,17}(?i)(\ S )\ 1 $給出0個匹配。即使在網上正則表達式測試...我想知道它是否可能與詞bounderys? thanx – Fosa

+0

只需添加額外的信息...現在它也可以在我的特殊Regex測試器中工作。在那個正則表達式測試中......我無法檢查一個複選框女巫說Multiline ...所以我不得不添加正則表達式參數(?m)所以小加法以(?m)^ [^ _ \ s \ d]結尾(?=。* \ d)\ S {5,17}(?i)(\ S)\ 1 $積分去Paul Draper和Casimir et Hippolyte。和平 – Fosa

+0

可能重複的[正則表達式密碼要求](http://stackoverflow.com/questions/1615078/regex-for-password-requirements) –

回答

0

如果您可以使用多個正則表達式來獲得,請嘗試以下:

\S{8,20} 

[^_0-9].*\d.* 

.*(?i)(.)\1 

如果一定要一個,使用此:

^[^_\s\d](?=.*\d)\S{5,17}(?i)(\S)\1$ 

(我必須給Casmir信貸幫助我發現在這最後一個錯誤。)

編輯:

這是

  1. 任意一個字符,除了下劃線,空間,或數字。

  2. (它必須跟任何字符,然後一個數字)

  3. 然後五至17的非空白字符

  4. 然後(不區分大小寫從現在起),一個空白字符,其次是相同的字符

+0

感謝分配兄弟!我所知道的唯一問題是,他仍然會找到這個:841DEf_hij2lmnopq3stt。我的正則表達式工具標記從'D' – Fosa

+0

開頭的'^'開頭的字符串和最後的'$'。我習慣於Java,其中'.match'測試整個字符串進行匹配。 –

+0

非常感謝。只是一件小事...有可能是他們的另一種方式來匹配整個字符串,然後是'^'和'$'?由於某種原因,我的正則表達式工具突然找不到任何東西,當我添加這些2個標誌時... ... Thanx分配了迄今爲止的幫助 – Fosa

0

你可以試試這個:

^[^\s\d_](?=.*\d)\S{5,17}(?i)(\S)\1$