我需要的正則表達式這修正長度字符串的正則表達式,只允許在末尾留出空間。 C#
A-Z,A-Z,0-9允許的。
固定爲20個字符。
空間在開始或中間不允許。
最後的空間允許。
例子:
123456789[Match]
1234567890 [Match]
abcde12345 [Match]
abcdefg [Not match]
ab cdefg [Not match]
我用這個表達式,它工作正常,但它確實漫長而艱難維持。
[a-zA-Z0-9]{20}|[a-zA-Z0-9]{19}\s{1}|[a-zA-Z0-9]{18}\s{2}
|[a-zA-Z0-9]{17}\s{3}|[a-zA-Z0-9]{16}\s{4}|[a-zA-Z0-9]{15}\s{5}
|[a-zA-Z0-9]{14}\s{6}|[a-zA-Z0-9]{13}\s{7}|[a-zA-Z0-9]{12}\s{8}
|[a-zA-Z0-9]{11}\s{9}|[a-zA-Z0-9]{10}\s{10}|[a-zA-Z0-9]{9}\s{11}
|[a-zA-Z0-9]{8}\s{12}|[a-zA-Z0-9]{7}\s{13}|[a-zA-Z0-9]{6}\s{14}
|[a-zA-Z0-9]{5}\s{15}|[a-zA-Z0-9]{4}\s{16}|[a-zA-Z0-9]{3}\s{17}
|[a-zA-Z0-9]{2}\s{18}|[a-zA-Z0-9]{1}\s{19}|\s{20}
請幫忙,謝謝。
UPDATE。
事實上,我需要檢查很長的字符串。
起初,我問這個問題之前,我的正則表達式是這個樣子(1正則表達式)
^[\s\d]{25}\d{6}[0-1]{1}\d{24}[\!\@\#\$\%\^\&\*\(\)\-\\_\=\+\/\,\?\<\>\;\:\"\'\w\s\.]{30}(\s{3}|\d{3})(\s{4}|\d{4})[\s|00|10|20|40]{2}[a-zA-Z0-9\s]{20}[\s\w\d]{0,32}$
後,我問這個問題,我的正則表達式是這個樣子(第二正則表達式)
^[\s\d]{25}\d{6}[0-1]{1}\d{24}[\!\@\#\$\%\^\&\*\(\)\-\\_\=\+\/\,\?\<\>\;\:\"\'\w\s\.]{30}(\s{3}|\d{3})(\s{4}|\d{4})[\s|00|10|20|40]{2}(?=.{20})[a-zA-Z0-9]*\s*[\s]{0,32}$
假設我把這個正則表達式分成3部分。
Part1:[\s\d]{25}\d{6}[0-1]{1}\d{24}[\!\@\#\$\%\^\&\*\(\)\-\\_\=\+\/\,\?\<\>\;\:\"\'\w\s\.]{30}(\s{3}|\d{3})(\s{4}|\d{4})[\s|00|10|20|40]{2}
Part2:[a-zA-Z0-9\s]{20} changed to (?=.{20})[a-zA-Z0-9]*\s*
Part3:[\s\w\d]{0,32}
Part1工作正常。
第2部分的要求被改變,所以我將其改爲「(?= {20} $)[A-ZA-Z0-9] * \ S *」
第三部分是問題時我改變part2。
例
00202510027680 1901160000000000000000000007000Test Test 009 069 aaaaaaaaaaaaaaaaaaaa
字符串結束與32米的空間。 如果我再添加1個空格,第一個正則表達式不匹配。但是第二次正則表達式匹配。正確的不匹配。
如何修改part2(或part3)以符合要求。謝謝。
您正在使用.NET正則表達式,並在網站上不支持.NET正則表達式的語法測試它。這裏有一個可用的.NET正則表達式:['@「^ [\ s \ d] {25} \ d {6} [01] \ d {24} [ - !@#$%^&*()\ \ _ = +/,? <> ;: 「」'\ W \ S] {30}(\ S {3} | \ d {3})。(\ S {4} | \ d {4})( \ S | 00 | 10 | 20 |?40){2} [A-ZA-Z0-9 \ S] {20}(<= [A-ZA-Z0-9] {0,20} \ S *) [\ S \ W \ d] {0,32} $「'](http://goo.gl/TQV2S4)。請測試並讓我知道它是否適合您。請注意,'[\ s | 00 | 10 | 20 | 40] {2}'匹配2個字符:空格或'0','1','2'或'4'。如果你需要匹配兩個空格,或兩個'00's或兩個'10's等,你需要使用'(...)'(參見我的模式)。 –
我認爲它幾乎可行,但在'aaaaaaaaaaaaaaaaaaaa'不能在開頭或中間有任何空間,只允許在最後。 – TaeV
@WiktorStribiżew請幫助,謝謝 – TaeV