2017-02-02 4 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.,]+)<\/ 

Информация, которую вы хотите находится в захвате group 1.

Этот шаблон принимает только 22 steps для получения результата. Это намного эффективнее, чем использование lookbehinds.

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

Смежные вопросы