2011-04-21 151 views
2
<option value="28.5.2011|2">28.maj. 2 dni od 109,00&nbsp;EUR</option> 
<option value="27.8.2011|2">27.avg. 2 dni od 109,00&nbsp;EUR</option> 
ect 

我需要從這樣的文本中解析數據。用正則表達式解析數據

我需要在第一個例子中得到:

在第二個例子中

正則表達式必須是通用的得到這個數據becous EI有1000行。

要得到27.8.2011我使用拆分和|對於分隔符。與2相同,但我不知道怎麼弄109

THX

+0

你試過了什麼(即,你當前的正則表達式是什麼樣子的),你在哪裏卡住?分割/分隔符的東西聽起來不像你現在正在使用正則表達式...... – Heinzi 2011-04-21 15:18:27

+1

各種2s中的哪一個是第二個正則表達式的目標? – 2011-04-21 15:18:53

+0

我建議使用此工具來協助創建正則表達式:http://gskinner.com/RegExr/ – 2011-04-21 15:19:36

回答

0

前提是你的輸入是嚴格只是option標記

<option value="28.5.2011|2">28.maj. 2 dni od 109,00&nbsp;EUR</option> 
<option value="27.8.2011|2">27.avg. 2 dni od 109,00&nbsp;EUR</option> 

以下工作:

"([^\|]+)\|([^"])">.*?(\d+), 

注意:這是一個非常具體的正則表達式,我不熟悉C#。所以如果你需要確切的代碼,其他人將不得不提供它。儘管如此,對於該輸入,上述RegEx正常工作。

+0

thx的答案,但我得到錯誤。所以我寫這個:\ d +((。\ d +)+(,\ d +)?)?好嗎? – senzacionale 2011-04-21 15:51:37

+0

究竟哪個錯誤? [regex](http://www.regular-expressions.info/)適用於[nregex.com](http://www.nregex.com)和[regexhero.net/tester ](http://www.regexhero.net/tester)。你可能只需要正確[照顧引號和轉義序列](http://stackoverflow.com/questions/5179389/at-sign-in-file-path-string/5179393#5179393「逃避字符串的行爲」 )在代碼中使用提供的字符串... – mousio 2011-04-21 22:28:19

1
String pat = "<option\svalue=".{1,15}?">.{1,10}?\s\d\s.{1,5}?\s.{1,5}?\s(.{1,10}?)\&nbsp\;EUR</option>"; 
Regex r = new Regex(pat, RegexOptions.IgnoreCase); 
Match m = r.Match(test); 
Group ad1 = m.Groups[1]; 
String out = ad1 +"";