Znajdź i zamień
Możesz łatwo poruszać się po dokumencie za pomocą klawiatury i myszy, ale jeśli masz wiele stron do przewinięcia, znalezienie określonego tekstu w długim dokumencie zajmie sporo czasu. Zastąpienie niektórych znaków lub słów użytych w dokumencie będzie bardziej czasochłonne. Funkcjonalność “Znajdź i zamień” umożliwia odnalezienie ciągu znaków w dokumencie i zastąpienie go innym ciągiem znaków.
Aspose.Words umożliwia znalezienie określonego ciągu znaków lub wzorca wyrażenia regularnego w dokumencie i zastąpienie go alternatywą bez instalowania i używania dodatkowych aplikacji, takich jak Microsoft Word. Przyspieszy to wiele zadań związanych z pisaniem i formatowaniem, potencjalnie oszczędzając godziny pracy.
W tym artykule wyjaśniono, jak zastosować zamianę ciągów i wyrażenia regularne z obsługą metaznaków.
Sposoby znajdowania i zamiany
Aspose.Words udostępnia dwa sposoby stosowania operacji znajdowania i zamieniania, korzystając z następujących metod:
- Prosta zamiana ciągu – aby znaleźć i zamienić konkretny ciąg na inny, należy podać szukany ciąg (znaki alfanumeryczne), który będzie zastępowany każdorazowo wystąpieniem innego określonego ciągu zastępczego. Oba ciągi nie mogą zawierać symboli. Weź pod uwagę, że przy porównywaniu ciągów może uwzględniać wielkość liter lub możesz nie być pewien pisowni lub mieć kilka podobnych pisowni.
- Wyrażenia regularne – aby określić wyrażenie regularne, aby znaleźć dokładnie pasujące ciągi znaków i zastąpić je zgodnie z wyrażeniem regularnym. Należy pamiętać, że słowo definiuje się jako składające się wyłącznie ze znaków alfanumerycznych. Jeśli zamiana zostanie wykonana z dopasowaniem tylko całych słów, a ciąg wejściowy będzie zawierał symbole, wówczas nie zostaną znalezione żadne frazy.
Ponadto można używać specjalnych metaznaków przy prostej zamianie ciągów znaków i wyrażeń regularnych w celu określenia przerw w operacji znajdowania i zamiany.
Aspose.Words przedstawia funkcję wyszukiwania i zamiany w module aspose.words.replacing. Podczas procesu znajdowania i zamieniania można pracować z wieloma opcjami, korzystając z klasy FindReplaceOptions.
Znajdź i zamień tekst za pomocą prostego zastępowania ciągów
Możesz użyć jednej z metod replace i replace_regex, aby znaleźć lub zamienić określony ciąg znaków i zwrócić liczbę dokonanych zamian. W takim przypadku możesz określić ciąg znaków, który ma zostać zastąpiony, ciąg, który zastąpi wszystkie jego wystąpienia, czy przy zamianie uwzględniana jest wielkość liter i czy wpłynie to tylko na pojedyncze słowa.
Poniższy przykład kodu pokazuje, jak znaleźć ciąg “CustomerName” i zastąpić go ciągiem “James Bond”:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Hello _CustomerName_,")
print("Original document text: " + doc.range.text)
doc.range.replace("_CustomerName_", "James Bond", aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD))
print("Document text after replace: " + doc.range.text)
# Save the modified document
doc.save(docs_base.artifacts_dir + "FindAndReplace.simple_find_replace.docx")
Możesz zauważyć różnicę między dokumentem przed zastosowaniem prostej zamiany ciągu znaków:
A po zastosowaniu prostej zamiany ciągów:
Znajdź i zamień tekst za pomocą wyrażeń regularnych
Wyrażenie regularne to wzorzec opisujący określoną sekwencję tekstu. Załóżmy, że chcesz zastąpić wszystkie podwójne wystąpienia słowa pojedynczym wystąpieniem słowa. Następnie możesz zastosować następujące wyrażenie regularne, aby określić wzorzec podwójnych słów: ([a-zA-Z]+) \1
.
Użyj metody replace_regex, aby wyszukać i zastąpić określone kombinacje znaków, ustawiając parametr wyrażenia regularnego jako wzorzec do wyszukiwania dopasowań.
Poniższy przykład kodu pokazuje, jak zastąpić ciągi pasujące do wzorca wyrażenia regularnego określonym ciągiem zastępczym:
Różnicę pomiędzy dokumentem można zauważyć przed zastosowaniem zamiany ciągów na wyrażenia regularne:
A po zastosowaniu zamiany ciągów na wyrażenia regularne:
Znajdź i zamień ciąg przy użyciu metaznaków
Jeśli dany tekst lub fraza składa się z wielu akapitów, sekcji lub stron, możesz użyć metaznaków w ciągu wyszukiwania lub ciągu zastępczym. Niektóre metaznaki obejmują &P dla podziału akapitu, &B dla podziału sekcji, &M dla podziału strony i &l dla podziału wiersza.
Poniższy przykład kodu pokazuje, jak zastąpić tekst akapitem i podziałem strony:
Znajdź i zamień ciąg w nagłówku/stopce dokumentu
Możesz znaleźć i zamienić tekst w sekcji nagłówka/stopki dokumentu Word, korzystając z klasy HeaderFooter.
Poniższy przykład kodu pokazuje, jak zastąpić tekst sekcji nagłówka w dokumencie:
Możesz zauważyć różnicę między dokumentem przed zastosowaniem zamiany ciągu nagłówka:
A po zastosowaniu zamiany ciągu nagłówka:
Przykładowy kod zastępujący tekst sekcji stopki w dokumencie jest bardzo podobny do poprzedniego przykładowego kodu nagłówka. Wszystko, co musisz zrobić, to zastąpić następujące dwie linie:
header = headersFooters.get_by_header_footer_type(aw.HeaderFooterType.HEADER_PRIMARY)
header.range.replace("Aspose.Words", "Remove", options)
Z następującymi:
header = headersFooters.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_PRIMARY)
header.range.replace("Aspose.Words", "Remove", options)
Możesz zauważyć różnicę między dokumentem przed zastosowaniem zamiany ciągu stopki:
A po zastosowaniu zamiany ciągu stopki:
Ignoruj tekst podczas wyszukiwania i zamiany
Stosując operację znajdź i zamień, możesz zignorować niektóre segmenty tekstu. Zatem niektóre części tekstu można wykluczyć z wyszukiwania, a funkcję Znajdź i Zamień można zastosować tylko do pozostałych części.
Aspose.Words udostępnia wiele właściwości wyszukiwania i zamiany umożliwiających ignorowanie tekstu, takich jak ignore_deleted, ignore_fields i ignore_inserted.
Poniższy przykład kodu pokazuje, jak zignorować tekst w usuwanych wersjach:
Dostosuj operację Znajdź i zamień
Aspose.Words udostępnia wiele różnych właściwości do wyszukiwania i zamiany tekstu, takich jak stosowanie określonego formatu za pomocą właściwości apply_font i apply_paragraph_formats, używanie podstawień we wzorcach zastępowania za pomocą właściwości use_substitutions i inne.
Poniższy przykład kodu pokazuje, jak wyróżnić określone słowo w dokumencie: