2016-04-12 41 views
1

我有點困惑與正則表達式,我有一條線,它看起來像這樣的事情:正則表達式:分號之間替換文本一定量的時候

test = "article;vendor;qty;desc;price1;price2"

,什麼我試圖做只是得到price1。 我目前使用此功能:

Regex.Replace(test, @".*;[^;]*;", "");

這使我得到price2但我不能看我怎麼可以隔離價格1。

+0

'var price2 = test.Split(';')[4];'? –

回答

1

你有沒有考慮只使用String.Split()調用,而不是打破當前的分號分隔字符串爲數組:

var input = "article;vendor;qty;desc;price1;price2"; 
var output = input.Split(';'); 

然後,你可以簡單地通過它的索引來訪問你的價值:

var result = output[4]; // yields "price1" 

如果有一種特定的模式可以用來匹配和準確選擇您要查找的內容,您只需要使用正則表達式,但對於分隔列表,方法通常會使事情變得更加簡單(特別是如果不是唯一標識你試圖從列表中拉出的項目)。

+0

你是完全正確的,我想知道爲什麼我在尋找複雜的東西,謝謝你。 –

+0

沒問題。正則表達式當然有它們的用途,但它們通常可能成爲一個「錘子」,可能會被濫用於某些超出其範圍之外的東西。所以雖然你可以在這裏使用一個,但它可能不是最好的方法:) –

0

使用以下正則表達式:

(?:[^;]*;){4}([^;]*); 

而更換第一場比賽組。

相關問題