I want to use input from a user as a regex pattern for a search over some text. It works, but how I can handle cases where user puts characters that have meaning in regex?
For example, the user wants to search for Word (s)
: regex engine will take the (s)
as a group. I want it to treat it like a string "(s)"
. I can run replace
on user input and replace the (
with \(
and the )
with \)
but the problem is I will need to do replace for every possible regex symbol.
Do you know some better way ?
Best Answer
Use the
re.escape()
function for this:4.2.3
re
Module ContentsA simplistic example, search any occurence of the provided string optionally followed by 's', and return the match object.