replace method

replace(pattern, replacement)

Replaces all occurrences of a specified character string pattern with a replacement string.

def replace(self, pattern: str, replacement: str):
    ...
ParameterTypeDescription
patternstrA string to be replaced.
replacementstrA string to replace all occurrences of pattern.

Remarks

The pattern will not be used as regular expression. Please use Aspose.Words.Range.Replace(System.Text.RegularExpressions.Regex,System.String) if you need regular expressions.

Used case-insensitive comparison.

Method is able to process breaks in both pattern and replacement strings.

You should use special meta-characters if you need to work with breaks:

  • &p - paragraph break

  • &b - section break

  • &m - page break

  • &l - manual line break

Use methodRange.replace() to have more flexible customization.

Returns

The number of replacements made.

replace(pattern, replacement, options)

Replaces all occurrences of a specified character string pattern with a replacement string.

def replace(self, pattern: str, replacement: str, options: aspose.words.replacing.FindReplaceOptions):
    ...
ParameterTypeDescription
patternstrA string to be replaced.
replacementstrA string to replace all occurrences of pattern.
optionsFindReplaceOptionsFindReplaceOptions object to specify additional options.

Remarks

The pattern will not be used as regular expression. Please use Aspose.Words.Range.Replace(System.Text.RegularExpressions.Regex,System.String,Aspose.Words.Replacing.FindReplaceOptions) if you need regular expressions.

Method is able to process breaks in both pattern and replacement strings.

You should use special meta-characters if you need to work with breaks:

  • &p - paragraph break

  • &b - section break

  • &m - page break

  • &l - manual line break

  • && - & character

Returns

The number of replacements made.

Examples

Shows how to perform a find-and-replace text operation on the contents of a document.

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.writeln("Greetings, _FullName_!")

# Perform a find-and-replace operation on our document's contents and verify the number of replacements that took place.
replacement_count = doc.range.replace("_FullName_", "John Doe")

self.assertEqual(1, replacement_count)
self.assertEqual("Greetings, John Doe!", doc.get_text().strip())

Shows how to add formatting to paragraphs in which a find-and-replace operation has found matches.

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.writeln("Every paragraph that ends with a full stop like this one will be right aligned.")
builder.writeln("This one will not!")
builder.write("This one also will.")

paragraphs = doc.first_section.body.paragraphs

self.assertEqual(aw.ParagraphAlignment.LEFT, paragraphs[0].paragraph_format.alignment)
self.assertEqual(aw.ParagraphAlignment.LEFT, paragraphs[1].paragraph_format.alignment)
self.assertEqual(aw.ParagraphAlignment.LEFT, paragraphs[2].paragraph_format.alignment)

# We can use a "FindReplaceOptions" object to modify the find-and-replace process.
options = aw.replacing.FindReplaceOptions()

# Set the "alignment" property to "ParagraphAlignment.Right" to right-align every paragraph
# that contains a match that the find-and-replace operation finds.
options.apply_paragraph_format.alignment = aw.ParagraphAlignment.RIGHT

# Replace every full stop that is right before a paragraph break with an exclamation point.
count = doc.range.replace(".&p", "!&p", options)

self.assertEqual(2, count)
self.assertEqual(aw.ParagraphAlignment.RIGHT, paragraphs[0].paragraph_format.alignment)
self.assertEqual(aw.ParagraphAlignment.LEFT, paragraphs[1].paragraph_format.alignment)
self.assertEqual(aw.ParagraphAlignment.RIGHT, paragraphs[2].paragraph_format.alignment)
self.assertEqual("Every paragraph that ends with a full stop like this one will be right aligned!\r" +
                 "This one will not!\r" +
                 "This one also will!", doc.get_text().strip())

Shows how to replace text in a document’s footer.

doc = aw.Document(MY_DIR + "Footer.docx")

headers_footers = doc.first_section.headers_footers
footer = headers_footers.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_PRIMARY)

options = aw.replacing.FindReplaceOptions()
options.match_case = False
options.find_whole_words_only = False

current_year = date.today().year
footer.range.replace("(C) 2006 Aspose Pty Ltd.", f"Copyright (C) {current_year} by Aspose Pty Ltd.", options)

doc.save(ARTIFACTS_DIR + "HeaderFooter.replace_text.docx")

Shows how to toggle case sensitivity when performing a find-and-replace operation.

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.writeln("Ruby bought a ruby necklace.")

# We can use a "FindReplaceOptions" object to modify the find-and-replace process.
options = aw.replacing.FindReplaceOptions()

# Set the "match_case" flag to "True" to apply case sensitivity while finding strings to replace.
# Set the "match_case" flag to "False" to ignore character case while searching for text to replace.
options.match_case = match_case

doc.range.replace("Ruby", "Jade", options)

self.assertEqual(
    "Jade bought a ruby necklace." if match_case else "Jade bought a Jade necklace.",
    doc.get_text().strip())

Shows how to toggle standalone word-only find-and-replace operations.

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.writeln("Jackson will meet you in Jacksonville.")

# We can use a "FindReplaceOptions" object to modify the find-and-replace process.
options = aw.replacing.FindReplaceOptions()

# Set the "find_whole_words_only" flag to "True" to replace the found text if it is not a part of another word.
# Set the "find_whole_words_only" flag to "False" to replace all text regardless of its surroundings.
options.find_whole_words_only = find_whole_words_only

doc.range.replace("Jackson", "Louis", options)

self.assertEqual(
    "Louis will meet you in Jacksonville." if find_whole_words_only else "Louis will meet you in Louisville.",
    doc.get_text().strip())

Shows how to replace all instances of String of text in a table and cell.

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

table = builder.start_table()
builder.insert_cell()
builder.write("Carrots")
builder.insert_cell()
builder.write("50")
builder.end_row()
builder.insert_cell()
builder.write("Potatoes")
builder.insert_cell()
builder.write("50")
builder.end_table()

options = aw.replacing.FindReplaceOptions()
options.match_case = True
options.find_whole_words_only = True

# Perform a find-and-replace operation on an entire table.
table.range.replace("Carrots", "Eggs", options)

# Perform a find-and-replace operation on the last cell of the last row of the table.
table.last_row.last_cell.range.replace("50", "20", options)

self.assertEqual("Eggs\a50\a\a" + "Potatoes\a20\a\a", table.get_text().strip())

See Also