2014-06-11 14:23 GMT+02:00 BrJohan <brjo...@gmail.com>:
> For some genealogical purposes I consider using Python's re module.
> Now, my problem: Is there a way to decide whether any two - or more - of
> those regular expressions will match the same string?
> Or, stated a little differently:
> Can it, for a pair of regular expressions be decided whether at least one
> string matching both of those regular expressions, can be constructed?
> --
> https://mail.python.org/mailman/listinfo/python-list

i guess, you could reuse some available generators for strings
matching a given regular expression, see e.g.:
for example a pyparsing recipe:

which might be general enough for your needs - of course, you cannot
use unbound quantifiers, backreferences, etc.

Then you can test for identical strings in the generated outputs -
e.g. using the set(...) and its intersection method.

You might also check a much more powerful regex library

which, beyond other features, also supports the mentioned fuzzy matches, cf.

>>> regex.findall(r"\bSm(?:ith){e<3}\b", "Smith Smithe Smyth Smythe Smijth")
['Smith', 'Smithe', 'Smyth', 'Smythe', 'Smijth']
(but, of course, you will have to be careful with this feature in
order to reduce false positives)


Reply via email to