2012-05-14 46 views
0

我想匹配字符串中的單詞與反向順序。正則表達式來匹配字符串順序

我們希望驗證提示用戶,如果名稱存在相反的順序。

例如:

如果name列的值是, '病毒,網球'

現在,如果用戶輸入新的名稱與價值, '網球,病毒'

然後我們如何使用正則表達式或其他方式匹配單詞的逆序?

我正在使用C#.net進行開發。

+0

你是什麼意思*匹配單詞*的反向順序? – aioobe

+1

Pehaps,你可以添加你正在使用的語言嗎? – Shubham

+2

我認爲你會更好地分割字符串,並反過來進行迭代。 – npinti

回答

0

你可以看看在Regex.Split(String input, String regex),做一些像這樣:

String[] userEntry = Regex.Split(userString, "\\s+"); 
StringBuilder sb = new StringBuilder() 
for (int i = userEntry.Length -1; i >= 0; i--) 
{ 
    sb.append(userEntry[i]).append(" "); 
} 

String result = sb.ToString(); 
//Do Validation 

那會做的伎倆,但是,你必須記住,事情會得到,如果你確實有點亂不想改變諸如逗號之類的特殊符號的順序。你可以很容易地刪除這些,並做任何驗證沒有特殊符號。

編輯:這取決於你的意思是由特殊符號。正則表達式[^a-zA-z0-9]+將匹配任何不是字母(大寫或小寫)的字符,也不是數字。所以,你可以很容易地做一些事情,像這樣:

string input = ... 
    string pattern = "[^a-zA-z0-9]+"; 
    string replacement = ""; 
    Regex rgx = new Regex(pattern); 
    string result = rgx.Replace(input, replacement); 

以上應產生僅根據字母和數字做了一個字符串。白色空間也將被刪除。

+0

是否有任何正則表達式去除特殊符號? – Viral

+0

@病毒:我修改了我的答案。如果你有任何你不想被刪除的符號,只要將它們添加到'pattern'變量中,確保它們在方括號內。 – npinti