2017-02-02 106 views
1

我試圖從一個字符串中刪除價格很長一段時間,但我找不到正則表達式,任何人?正則表達式尋找價格

$txt = `<br class='clear'/> <div style='float:left;width:100px;'> 02 Dorm.<br /> A partir de: </div><div class='info' style='color:#E50000; font-weight:normal;'> 
<font style='font-size:16px;'>R$ 505.726,23</font><div style='font-size:10px;line-height:10px'>*Venda sob consulta (Ref. Apto 103 Box 01)</div></div><br class=clear><br class='clear'/> <div style='float:left;width:100px;'> 03 Dorm.<br /> A partir de: </div><div class='info' style='color:#E50000; font-weight:normal;'><font style='font-size:16px;'>R$ 639.898,49</font><div style='font-size:10px;line-height:10px'>*Venda sob consulta (Ref. Apto 104 Box 02)</div></div><br class=clear><br class='clear'/><div style='float:left;width:100px;' class='normal'> Vagas:</div><div class='info' > <i class='fa fa-car'></i> &nbsp;1</div>` 

我只想639.898,49

+0

什麼語言/環境?你嘗試了什麼? –

+0

語言是php我試過這個: \ d {1,3}(?:[。,] \ d {3})*(?:[。,] \ d {2})但不能工作 – Rafael

+0

什麼是選擇「639.898,49」而不是「505.726,23」的標準? – Toto

回答

2

試試這個(使用正回顧後):

(?<=R\$).*?(?=<\/font>)

+0

你可以在這裏測試:https://regex101.com/r/4ILB9s/1 –

+0

謝謝你,工作! – Rafael

+0

我必須使用preg_match或preg_match_all? – Rafael

0

另一種模式,你可以嘗試是:

R\$ ([\d.,]+)<\/ 

你想要的信息正在捕獲組1

此模式只需要22 steps即可獲得結果。它比使用向後看效率更高效。

https://regex101.com/r/4xw5ME/1