Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a simple way to switch between using and ignoring metacharacters in Python regular expressions?

Is there a way of toggling the compilation or use of metacharacters when compiling regexes? The current code looks like this:


Current code:

import re

the_value  = '192.168.1.1'
the_regex  = re.compile(the_value)

my_collection = ['192a168b1c1', '192.168.1.1']

my_collection.find_matching(the_regex)

result = ['192a168b1c1', '192.168.1.1']


The ideal solution would look like:

import re

the_value  = '192.168.1.1'
the_regex  = re.compile(the_value, use_metacharacters=False)

my_collection = ['192a168b1c1', '192.168.1.1']

my_collection.find_matching(the_regex)

result = ['192.168.1.1']

The ideal solution would let the re library handle the disabling of metacharacters, to avoid having to get involved in the process as much as possible.

like image 834
Juan Carlos Coto Avatar asked Nov 22 '13 02:11

Juan Carlos Coto


1 Answers

Nope. However:

the_regex  = re.compile(re.escape(the_value))
like image 97
Ignacio Vazquez-Abrams Avatar answered Sep 28 '22 18:09

Ignacio Vazquez-Abrams