2011-08-21 15 views
0

之間的空間有沒有建立一個正則表達式匹配一個數字,字母過渡爲如一個辦法:正則表達式匹配數字到字母過渡這樣我就可以把他們

e2, s5, c8 

我打開一個.NET應用程序一個文件內容到一個richtextbox中,我希望這個應用程序能夠找到一個從數字到字母的轉換,並用空格分開字母和數字。

+0

所以你想把e2,s5,c8轉換成e2 s5 c8嗎? – dtb

+0

你需要像「e 2,s 5,c 8」這樣的東西嗎? – Gandarez

+2

如果你需要幫助,你應該回答評論並張貼你想要匹配的字符串樣本,否則很難幫助你。 –

回答

0

嘗試這種情況:

string resultString = null; 
try { 
    resultString = Regex.Replace(subjectString, @"(\d{1})([:alpha:]{1})", "$1 $2", RegexOptions.IgnoreCase); 
} catch (ArgumentException ex) { 
    // Syntax error in the regular expression 
} 
+1

OP是要求數字到字母轉換,而不是字母數字。 – dtb

+0

我糾正了正則表達式。我被前者誤導(e2,s5,c8)。 –

+1

.NET正則表達式不支持POSIX字符類('[:alpha:]','[:digit:]'等)。看起來你在RegexBuddy中寫了那個正則表達式; RB沒有抱怨的原因是因爲你的語法錯了 - 它應該是'[[:alpha:]]'。在我所知道的每種口味中,'[:alpha:]'本身就是另一個字符集,相當於'[ahlp:]'。 –

0

匹配任何:

E2,S5,C8

REGEX:

([AZ]) (\ d) ,

OR:

([AZ])(\ d),

組別1是字母,組2是數字,重建串組1 + 「」 +組2,得到: E 2,第5,C 8

測試在這裏: http://gskinner.com/RegExr/

+0

謝謝你,這真的很有幫助,我不得不將它改成(\ d)([a-z])以獲得所需的結果,但它是一樣的 – Allad1n

+0

很高興幫助,不要忘記標記爲答案並投票;) – scott

相關問題