2016-12-29 78 views
0

我有這樣的一個句子。正則表達式或另一種分割句子的方式

Crit Hit Chance 0,3 Armor 200 

或只是

Damage hit 0,2 

,我需要拆分句子,所以我可以得到名稱和值成是進入我的數據庫中的對象。我不能在「」處分割,因爲一些名稱包含空格,我可以在.,處拆分,因爲該值包含該空格。

有沒有人在那裏,誰可以幫我把句子像我想要的那樣分開。我不太瞭解regEx,但我認爲這是最簡單的方法?

輸出應該名稱:暴擊傷害值: 0,3

可能的輸入:暴擊傷害0,3護甲200

我想輸出

致命一擊傷害

0,3

氬MOR

可能的輸入:重擊損壞0,3

輸出

重擊損壞

0,3

可能的輸入:護甲200

輸出:

護甲

possilble輸入:性能與MainStat

輸出:

瓶坯ANCE

MainStat

+3

什麼是預期的輸出? –

+0

我想將文本保存爲數據庫中的名稱,並將值作爲值保存。 –

+1

我們不知道應該是什麼名字和價值,只有你知道。請提供預期產出的例子。 –

回答

2

提供不能包含數字的名字,想必你想要的東西,如:

Match result; 
result = Regex.Match(input, @"(\D+)\s+(\d+(,\d+)?)\s*"); 
while (result.Success) 
{ 
    var name = result.Groups[1]; 
    var value = result.Groups[2]; 
    result = result.NextMatch(); 
} 

表達羣體在一起不能包含數字(\D+)字符的字符串後面的白色一定量空格\s+,然後一些數字\d+,然後可能是一個逗號有更多的數字,或沒有什麼(,\d+)?,最後消耗句子中的下一塊文本之間的任何尾隨空格\s*

注意的是,第一組(0)是匹配的整個表達式文本的整個字符串,因此第一個捕獲組是組1

+0

是的,這可能就足夠了。小費:''[^ \ d]'='\ D' –

+0

呵呵,爲什麼我總是忘記消極的角色類短褲? –

+0

謝謝。我認爲這是有效的:-) –