簡體   English   中英

單個拆分或匹配正則表達式

[英]single split or match regex

9.jul。 3 dni od 205,00 EUR

是否可以使用單個正則表達式(匹配opr拆分)從字符串中獲取205,00的數字? 它必須是單個正則表達式,而不是2或3個正則表達式,其結果為205,00。

字符串看起來像:

 <option value="9.7.2010|3">9.jul. 3 dni od 205,00&nbsp;EUR <option value="23.7.2010|3">23.jul. 3 dni od 205,00&nbsp;EUR <option value="27.8.2010|3">27.avg. 3 dni od 205,00&nbsp;EUR <option value="10.9.2010|3">10.sep. 3 dni od 205,00&nbsp;EUR <option value="24.9.2010|3">24.sep. 3 dni od 205,00&nbsp;EUR <option value="29.10.2010|3">29.okt. 3 dni od 205,00&nbsp;EUR <option value="25.3.2011|3">25.mar. 3 dni od 205,00&nbsp;EUR <option value="15.4.2011|3">15.apr. 3 dni od 205,00&nbsp;EUR </select>

也許

(\d+,\d\d) EUR$

您實際上並沒有真正指定主題的總體外觀。

這里有兩個可能的問題

空間

它是空格(ASCII 32)還是&nbsp; 還是只是\\s字符?


比賽部分

我將假設它只是一個常規空間。 如果不是這種情況,則以以下模式替換它。

要僅匹配數字部分,可以使用\\d+,\\d\\d(?= EUR) 這會使用前瞻(?=___)因此您只匹配您感興趣的部分。

另一種選擇是匹配(\\d+,\\d\\d) EUR ,然后提取Groups[1]

相關問題

參考

您嘗試(\\d+,\\d\\d) EUR (希望您實際上沒有在&nbsp;鍵入)應該可以,但是您必須從結果中訪問第1組以獲取括號中的內容。 例如:

Regex regex = new Regex(@"(\d+,\d\d) EUR");
Match match = regex.Match("9.jul. 3 dni od 205,00 EUR");
string cashString = match.Groups[1].Value;

&nbsp; 將很可能會轉換為ASCII 160(經HTML解碼),與空格不同。 使用\\ s +將不匹配任何空格,普通空格,制表符和換行符/回車符。

如果未解碼,則應該可以使用&nbsp; 而不是\\ s +。

(\d+,\d+)\s+EUR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM