Najít a nahradit
V dokumentu se můžete snadno pohybovat pomocí klávesnice a myši, ale pokud máte k procházení mnoho stránek, nalezení konkrétního textu v dlouhém dokumentu bude chvíli trvat. Bude to časově náročnější, když chcete nahradit určité znaky nebo slova, která jste použili v dokumentu. Funkce “Najít a nahradit” umožňuje najít sekvenci znaků v dokumentu a nahradit ji jinou sekvencí znaků.
Aspose.Words umožňuje najít v dokumentu konkrétní řetězec nebo vzor regulárního výrazu a nahradit jej alternativou bez instalace a použití dalších aplikací, jako je Microsoft Word. To urychlí mnoho úkolů psaní a formátování, což vám potenciálně ušetří hodiny práce.
Tento článek vysvětluje, jak použít nahrazení řetězce a regulární výrazy s podporou metacharacters.
Způsoby, jak najít a nahradit
Aspose.Words poskytuje dva způsoby použití operace najít a nahradit pomocí následujícího:
- Simple string replacement - Chcete-li najít a nahradit konkrétní řetězec jiným, musíte zadat vyhledávací řetězec (alfanumerické znaky), který bude nahrazen podle všech výskytů jiným zadaným náhradním řetězcem. Oba řetězce nesmí obsahovat symboly. Vezměte v úvahu, že porovnání řetězců může rozlišovat velká a malá písmena, nebo si nejste jisti pravopisem nebo máte několik podobných pravopisů.
- Regular expressions - Chcete-li zadat regulární výraz, najděte přesné shody řetězců a nahraďte je podle regulárního výrazu. Všimněte si, že slovo je definováno jako tvořené pouze alfanumerickými znaky. Pokud je náhrada provedena pouze s odpovídajícími celými slovy a vstupní řetězec obsahuje symboly, nebudou nalezeny žádné fráze.
Kromě toho můžete použít speciální metaznaky s jednoduchou náhradou řetězců a regulárními výrazy k určení přestávek v rámci operace najít a nahradit.
Aspose.Words představuje funkci Najít a nahradit jmenným prostorem Aspose.Words.Replacing. Během procesu najít a nahradit můžete pracovat s mnoha možnostmi pomocí třídy FindReplaceOptions.
Najděte a nahraďte Text pomocí jednoduché náhrady řetězce
Pomocí jedné z metod Replace můžete najít nebo nahradit konkrétní řetězec a vrátit počet provedených náhrad. V tomto případě můžete určit řetězec, který má být nahrazen, řetězec, který nahradí všechny jeho výskyty, zda náhrada rozlišuje velká a malá písmena a zda budou ovlivněna pouze samostatná slova.
Následující příklad kódu ukazuje, jak najít řetězec “CustomerName " a nahradit jej řetězcem “James Bond”:
Rozdíl mezi dokumentem si můžete všimnout před použitím jednoduché výměny řetězců:
A po použití jednoduché výměny řetězce:
Najděte a nahraďte Text pomocí regulárních výrazů
Regulární výraz (regulární výraz) je vzor, který popisuje určitou posloupnost textu. Předpokládejme, že chcete nahradit všechny dvojité výskyty slova výskytem jednoho slova. Poté můžete použít následující regulární výraz k určení dvouslovného vzoru: ([a-zA-Z]+) \1
.
Pomocí jiné metody Replace vyhledejte a nahraďte konkrétní kombinace znaků nastavením parametru Regex
jako vzoru regulárního výrazu pro nalezení shod.
Následující příklad kódu ukazuje, jak nahradit řetězce, které odpovídají vzoru regulárního výrazu, zadaným náhradním řetězcem:
Rozdíl mezi dokumentem si můžete všimnout před použitím nahrazení řetězce regulárními výrazy:
A po použití nahrazení řetězce regulárními výrazy:
Najděte a nahraďte řetězec pomocí Metacharacters
Pokud se určitý text nebo fráze skládá z více odstavců, oddílů nebo stránek, můžete ve vyhledávacím řetězci nebo v náhradním řetězci použít znaky meta. Některé z metacharakterů zahrnují &p pro konec odstavce, &b pro konec oddílu, &m pro konec stránky a &l pro konec řádku.
Následující příklad kódu ukazuje, jak nahradit text odstavcem a koncem stránky:
Najít a nahradit řetězec v záhlaví / zápatí dokumentu
Text můžete najít a nahradit v části Záhlaví/zápatí dokumentu Word pomocí třídy HeaderFooter.
Následující příklad kódu ukazuje, jak nahradit text části záhlaví v dokumentu:
Rozdíl mezi dokumentem si můžete všimnout před použitím nahrazení řetězce záhlaví:
A po použití nahrazení řetězce záhlaví:
Příklad kódu, který nahradí text části zápatí v dokumentu, je velmi podobný předchozímu příkladu kódu záhlaví. Vše, co musíte udělat, je nahradit následující dva řádky:
auto header = headersFooters->idx_get(HeaderFooterType::HeaderPrimary);
header->get_Range()->Replace(u"Aspose.Words", u"Remove", options);
S následujícími:
auto footer = headersFooters->idx_get(HeaderFooterType::FooterPrimary);
footer->get_Range()->Replace(u"(C) 2006 Aspose Pty Ltd.", u"Copyright (C) Aspose Pty Ltd.", options);
Rozdíl mezi dokumentem si můžete všimnout před použitím nahrazení řetězce zápatí:
A po použití zápatí řetězec nahrazení:
Ignorujte Text během hledání a nahrazení
Při použití operace najít a nahradit můžete ignorovat určité segmenty textu. Některé části textu lze tedy z vyhledávání vyloučit a najít a nahradit lze použít pouze na zbývající části.
Aspose.Words poskytuje mnoho vlastností najít a nahradit pro ignorování textu, jako například IgnoreDeleted, IgnoreFieldCodes, IgnoreFields, IgnoreFootnotes, a IgnoreInserted.
Následující příklad kódu ukazuje, jak ignorovat text uvnitř odstranit revize:
Přizpůsobení operace najít a nahradit
Aspose.Words poskytuje mnoho různých properties k vyhledání a nahrazení textu, například použití konkrétního formátu s vlastnostmi ApplyFont a ApplyParagraphFormats, použití substitucí v náhradních vzorcích s vlastností UseSubstitutions a další.
Následující příklad kódu ukazuje, jak zvýraznit konkrétní slovo v dokumentu:
Aspose.Words umožňuje použít rozhraní IReplacingCallback k vytvoření a volání vlastní metody během operace nahrazení. Můžete mít některé případy použití, kdy potřebujete přizpůsobit operaci najít a nahradit, jako je nahrazení textu určeného regulárním výrazem značkami HTML, takže v zásadě použijete nahradit vložením HTML.
Pokud potřebujete nahradit řetězec značkou HTML, Použijte rozhraní IReplacingCallback k přizpůsobení operace najít a nahradit tak, aby shoda začala na začátku běhu s uzlem shody vašeho dokumentu. Uveďme několik příkladů použití IReplacingCallback.
Následující příklad kódu ukazuje, jak nahradit text zadaný HTML:
Následující příklad kódu ukazuje, jak zvýraznit kladná čísla zelenou barvou a záporná čísla červenou barvou:
Následující příklad kódu ukazuje, jak předřadit číslo řádku na každý řádek: