2015-08-20 2 views
0

Я пытаюсь разработать регулярное выражение для извлечения адреса, даты продажи и информация цена продажи от этой строки:RegEx выражение, используя положительный просмотра назад

<strong id="address">1245 DUPONT ST</strong><br>Toronto : Metro Toronto<br>14 Aug 2015&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$71,000,000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#CC0000"></font> 

В идеале, я хотел бы получить информацию, отформатированную на пять отдельные строки, как это:

1245 DUPONT ST 
Toronto 
Metro Toronto 
14 Aug 2015 
$71,000,000 

Я подозреваю, что решение будет включать в себя использование positive lookbehind, потому что информация об адресе всегда по можно определить по id="address", но я не могу заставить его работать. Любая помощь будет принята с благодарностью. Благодарю.

+0

Какой язык вы с помощью? –

+0

Я использую uBot, который является своего рода программным обеспечением для автоматизации Windows. Не совсем уверен в базовой базе, в которой он запрограммирован. – DanielAttard

+0

Эта информация всегда в одном порядке? –

ответ

1

Я не согласен с регулярным выражением для анализа xml и вместо этого будет использовать синтаксический анализатор html.

Однако для конкретного примера я могу придумать с этим регулярное выражение, которое работает на PCRE двигателя:

id="address">(.*?)<|<br>(.*?) : (.*?)<br>|(?<=<br>)(.*?)&|(\$[^&]+) 

Working demo

спичек информация:

MATCH 1 
1. [21-35] `1245 DUPONT ST` 
MATCH 2 
2. [48-55] `Toronto` 
3. [58-71] `Metro Toronto` 
MATCH 3 
4. [75-86] `14 Aug 2015` 
MATCH 4 
5. [122-133] `$71,000,000` 
+0

Ничего себе, это действительно работает. Удивительный материал @Fede. Почему вы говорите, что не согласны с использованием регулярного выражения для анализа XML? Я ничего не понимаю о том, что такое парсер регулярных выражений. Возможно, мне следовало это сделать. – DanielAttard

+0

@ DanielAttard, возможно, вы захотите увидеть этот вопрос с принятым ответом: https://stackoverflow.com/a/1732454/4464702 Он также пытается сопоставить регулярное выражение в HTML. – RAnders00

+0

@ DanielAttard вы можете использовать регулярное выражение для разбора xhtml ** только **, если вы знаете, что обозначают символы, в этом случае регулярное выражение не является плохим решением. Однако, если вы используете xml, то XPath, XQuery - правильный подход, с другой стороны, если вы используете html, то синтаксические анализаторы html - хороший выбор. В любом случае, если вы не хотите использовать новую структуру или библиотеку, простое регулярное выражение может сделать трюк. –

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