Czy są jakieś biblioteki, które mogą pobrać tekst (np. Dokument HTML) i listę ciągów znaków (np. Nazwy niektórych produktów), a następnie znaleźć wzór na liście łańcuchów i wygenerować wyrażenie regularne, które wyodrębniłoby wszystkie ciągi w tekście (dokument HTML), które pasują do znalezionego wzorca?Biblioteka Pythona do generowania wyrażeń regularnych
Na przykład, biorąc pod uwagę następujący kod HTML:
<table>
<tr>
<td>Product 1</td>
<td>Product 2</td>
<td>Product 3</td>
<td>Product 4</td>
<td>Product 5</td>
<td>Product 6</td>
<td>Product 7</td>
<td>Product 8</td>
</tr>
</table>
i poniższa lista ciągów:
['Product 1', 'Product 2', 'Product 3']
Chciałbym funkcji, która będzie budować regex jak poniżej:
'<td>(.*?)</td>'
a następnie wyodrębnij wszystkie informacje z pliku html zgodnego z wyrażeniem regularnym. W tym przypadku wyjście byłoby:
['Product 1', 'Product 2', 'Product 3', 'Product 4', 'Product 5', 'Product 6', 'Product 7', 'Product 8']
Wyjaśnienie:
Chciałbym funkcja patrzeć na otaczający próbek, a nie na samych próbek. Tak więc, na przykład, jeśli html było:
<tr>
<td>Word</td>
<td>More words</td>
<td>101</td>
<td>-1-0-1-</td>
</tr>
i próbki ['Word', 'More words']
Chciałabym to aby wyodrębnić:
['Word', 'More words', '101', '-1-0-1-']
Dlaczego nie budować wyrażenie "Produkt [1-3]"? – mgilson
Powiązane: http://stackoverflow.com/questions/616292/is-it-possible-for-a-computer-to-learn-a-regular-expression-by-user-provided-e –
@mgilson Powinno spróbować generalizować jak najwięcej, a nie pasować więcej niż przykłady (lista ciągów znaków) ... –