2014-10-11 22 views
0

我有HTML的該塊,我試圖將價格隔離:正則表達式來匹配這個HTML的價格?

<div style="float:left;"><a class="url" href="http://www.amazon.co.uk/AllThingsAccessory%C2%AE-Sports-Running-Jogging-... src="http://ecx.images-amazon.com/images/I/51bQWjrCioL._SL160_.jpg" alt="AllThingsAccessory Sports" border="0" hspace="0" vspace="0" /></a></div><span class="riRssTitle"><a href="http://www.amazon.co.uk/AllThingsAccessory%C2%AE-Sports-Running-Jogging-...® Sports Running Jogging Gym Armband Arm Band Case Cover Holder For iPhone 6 5 5S 5C 4S 4</a></span> <br /><span class="riRssContributor">AllThingsAccessory®</span> <br /><img src="http://g-ecx.images-amazon.com/images/G/02/x-locale/common/icons/uparrow... width="13" align="abstop" alt="Ranking has gone up in the past 24 hours" title="Ranking has gone up in the past 24 hours" height="11" border="0" /> <font color="green"><strong>52,006%</strong></font> Sales Rank in Sports & Outdoors: 50 (was 26,053 yesterday) <br /> <img src="http://g-ecx.images-amazon.com/images/G/02/detail/stars-4-5._V192253866_... width="64" height="12" border="0" style="margin: 0; padding: 0;"/>(51)<br /><br /><a href="http://www.amazon.co.uk/AllThingsAccessory%C2%AE-Sports-Running-Jogging-... new: </a> <strike>£7.99 - £9.99</strike> <font color="#990000"><b>£4.99</b></font> <br /><br />(Visit the <a href="http://www.amazon.co.uk/gp/movers-and-shakers/sports/ref=pd_zg_rss_ms_sg... & Shakers in Sports & Outdoors</a> list for authoritative information on this product's current rank.)

,我使用這個正則表達式來獲得的第一個井號:

(^[^£]*)

如何我是否應用另一個表達式來限制小數點後第一個2個字符?或者有另一種方法來做到這一點?

感謝提前:)

+0

您的預期輸出是什麼? – 2014-10-11 14:37:18

+1

用正則表達式解析HTML只會以淚結束http://stackoverflow.com/a/1732454/2670892 – 2014-10-11 14:40:06

回答

2

好了,你可以簡單地使用

/£\d+\.\d{1,2}/g 

上述匹配£後跟任何數字(\d+)然後匹配.,然後匹配限於一個數字和兩位數字使用量化{1,2}

DEMO

+1

也要解釋一下,正則表達式的解釋對於OP以外的一般站點訪問者非常有用。 – 2014-10-11 14:36:49

+0

在html中的英鎊符號很可能是編碼'£' – Onimusha 2014-10-11 14:38:29

+0

@MohammadAreebSiddiqui完成... – 2014-10-11 14:38:40

0

搜索此:

£\d+\.\d{2} 

這將搜索£-symbol,接着是多個(多個數字),由點foloowed,由兩個數字follwed。 這會在您的html中找到第一個出現。 當您添加全局開關/ g時,您會發現文本中的每個圖案

+0

非常感謝 - 那正是我所期待的:D – user2653665 2014-10-11 15:46:29

+0

其實......我意識到我需要的是與此完全相反的,因爲我不得不使用Regex Find Replace。那麼Regex會是什麼? – user2653665 2014-10-13 13:11:46

+0

你需要更換哪部分?正則表達式找到一個定義的字符序列,你可以用其他的替換它。所以你必須指定,你想用其他替換的匹配字符串的哪一部分。換句話說,用'Pound'代替£或者這樣。 – 2014-10-14 07:44:49