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:

  1. 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 przy każdym wystąpieniu innym określonym ciągiem zastępczym. 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.
  2. 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 przestrzeni nazw 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ą prostej zamiany ciągów

Możesz użyć jednej z metod Replace, 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”:

Możesz zauważyć różnicę między dokumentem przed zastosowaniem prostej zamiany ciągu znaków:

przed wyjściem wymianą ciągu

A po zastosowaniu prostej zamiany ciągów:

po pozostawieniu w domu

Znajdź i zamień tekst za pomocą wyrażeń regularnych

Wyrażenie regularne (regex) 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 innej metody Replace, aby wyszukać i zastąpić określone kombinacje znaków, ustawiając parametr Regex jako wzorzec wyrażenia regularnego w celu znalezienia 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:

przed-zamianą-wyrażeń-regularnych

A po zastosowaniu zamiany ciągów na wyrażenia regularne:

po zamianie na odpowiedni

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:

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:

przed zmianą ciągu nagłówka

A po zastosowaniu zamiany ciągu nagłówka:

po zastosowaniu ciągłego nagłówka po zastosowaniu

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:

HeaderFooter header = headersFooters[HeaderFooterType.HeaderPrimary];
header.Range.Replace("Aspose.Words", "Remove", options);

Z następującymi:

HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
int currentYear = System.DateTime.Now.Year;
footer.Range.Replace("(C) 2006 Aspose Pty Ltd.", $"Copyright (C) {currentYear} by Aspose Pty Ltd.", options);

Możesz zauważyć różnicę między dokumentem przed zastosowaniem zamiany ciągu stopki:

przed wymianą-stringu-stopki

A po zastosowaniu zamiany ciągu stopki:

wymień ciąg stopki po zastosowaniu

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 IgnoreDeleted, IgnoreFieldCodes, IgnoreFields, IgnoreFootnotes i IgnoreInserted.

Poniższy przykład kodu pokazuje, jak zignorować tekst w usuwanych wersjach:

Dostosuj operację Znajdź i zamień

Aspose.Words udostępnia wiele różnych formatów properties do wyszukiwania i zastępowania tekstu, takich jak stosowanie określonego formatu z właściwościami ApplyFont i ApplyParagraphFormats, używanie podstawień we wzorcach zastępowania właściwością UseSubstitutions i inne.

Poniższy przykład kodu pokazuje, jak wyróżnić określone słowo w dokumencie:

Aspose.Words umożliwia użycie interfejsu IReplacingCallback do tworzenia i wywoływania metody niestandardowej podczas operacji zamiany. Możesz mieć pewne przypadki użycia, w których będziesz musiał dostosować operację znajdowania i zamiany, na przykład zastąpienie tekstu określonego wyrażeniem regularnym znacznikami HTML, więc zasadniczo zastosujesz zamianę, wstawiając kod HTML.

Jeśli chcesz zamienić ciąg znaków na znacznik HTML, zastosuj interfejs IReplacingCallback, aby dostosować operację znajdowania i zamiany tak, aby dopasowanie rozpoczynało się na początku przebiegu z węzłem dopasowania w dokumencie. Podajmy kilka przykładów użycia IReplacingCallback.

Poniższy przykład kodu pokazuje, jak zastąpić tekst określony kodem HTML:

Poniższy przykład kodu pokazuje, jak wyróżnić liczby dodatnie kolorem zielonym i liczby ujemne kolorem czerwonym:

Poniższy przykład kodu pokazuje, jak dodać numer linii do każdej linii: