У меня есть очень специфическая задача для достижения с помощью одного регулярного выражения. Вот образец текста я должен извлечь данные из (обратите внимание, я разбора HTML-подобный код, хранящийся в неизменяемой файле):Деревоподобные совпадения в регулярном выражении с фиксированной цепочкой
<tr>
<td > <a ><img /></a>
</td>
<td > <a ><span >RootData</span></a>
</td>
<td > Data1.1
</td>
<td > <a ><img /></a>
</td>
<td > <a ><span >Data1.2</span></a>
</td>
<td >  
</td></tr>
<tr>
<td > Data2.1
</td>
<td > <a ><img /></a>
</td>
<td > <a ><span >Data2.2</span></a>
</td>
<td >  
</td></tr>
...
Во-первых, есть корень, содержащийся внутри первой «тр» , Все еще внутри этого, есть некоторые datq (Data1.1 и Data1.2) для извлечения. Затем приходит конечное число блоков «tr», каждый из которых содержит данные для извлечения. Я хотел бы спички, чтобы быть похожим на это:
- матч 1: 'RootData' 'Data1.1' 'Data1.2'
- матч 2: '' RootData Data2.1 '«Data2' 0,2'
- и т.д.
до сих пор я вижу, что делать с 2 регулярными выражениями и 2 петли (как 1 ищет корень, а другие, чтобы найти все из этого ДАННЫХ корня), но я хотел бы он должен находиться в одном регулярном выражении.
Если некоторые из вас уже сталкивались с этим и может помочь, это было бы красиво :)
Спасибо заранее.
Нельзя делать только регулярное выражение, так как вам нужно два матча, которые начинаются с того же места. –
Это возможно только в том случае, если вы используете механизм регулярных выражений, такой как тот, который указан в языках .net или в модуле regex на python. Во всяком случае, использование регулярного выражения для извлечения данных из xml/html не является хорошим способом. Используйте анализатор для извлечения данных, а затем создайте структуру данных (массив, список, объект ...), в которой вы нуждаетесь. –