Python: how to substitute and know whether it matched

Use re.subn

Perform the same operation as sub(), but return a tuple (new_string, number_of_subs_made).

and then check the number of replacements that were made. For example:

text2, numReplacements = re.subn(pattern, repl, text1)
if numReplacements:
    # did match
else:
    # did not match

The repl parameter can also be a function which takes an RE match object and returns what the replacement should be; this function is not called if the text doesn't match. You could use that to do what you needed then just return a constant string you want to replace it with. This would cut down on an unneeded second check against the RE.

Tags:

Python

Regex