Niedawno przełączyłem się na język Python i chciałbym wyczyścić bardzo dużą liczbę stron internetowych (około 12k) (ale można je uznać za równie łatwe pliki tekstowe) poprzez usunięcie niektórych znaczników lub innych wzorów łańcuchów. Do tego używam funkcji re.sub (..) w Pythonie.Zastąpienie za pomocą wielu wyrażeń regularnych lub większego w Pythonie
Moje pytanie brzmi: czy jest lepiej (z punktu widzenia wydajności), aby utworzyć jedno duże wyrażenie regularne, które pasuje do większej liczby wzorów lub wywołać funkcję kilka razy z mniejszymi i prostszymi wyrażeniami regularnymi.
Aby zilustrować, lepiej jest użyć czegoś podobnego
re.sub(r"<[^<>]*>", content)
re.sub(r"some_other_pattern", content)
lub
re.sub(r"<[^<>]*>|some_other_pattern",content)
Oczywiście, ze względu na przykładowych dotychczasowe wzory są naprawdę proste, a ja ich nie skompilowany tutaj, ale w moim prawdziwym scenariuszu będę.
LE: Pytanie nie jest związane z kodem HTML plików, ale z zachowaniem Pythona, gdy mamy do czynienia z wieloma wzorami regex.
Dzięki!
[Obowiązkowe ostrzeżenie o parsowaniu kodu HTML za pomocą wyrażeń regularnych] (http://stackoverflow.com/a/1732454/950912) – brc
Właściwie, jak już wspomniałem, nie chodzi głównie o usuwanie i analizowanie tekstu HTML, ale o usunięcie niektórych szczególnych Wzorce związane z HTML. Moje pytanie można również postawić bardziej ogólnie na temat prostych plików tekstowych i zastępowania w nich garści wzorów. –
Myślę, że sprowadza się to do tego, jak dobrze jesteś z regex ... jeśli możesz to zrobić z jednym, niż użyć jednego ... prawdopodobnie podzieliłoby to na kilka, aby łatwiej było je przeanalizować ... –