Validating regexp

Chris Angelico rosuav at gmail.com
Tue Aug 8 13:10:37 EDT 2017


On Wed, Aug 9, 2017 at 2:57 AM, Larry Martell <larry.martell at gmail.com> wrote:
> On Tue, Aug 8, 2017 at 12:51 PM, Chris Angelico <rosuav at gmail.com> wrote:
>> On Wed, Aug 9, 2017 at 2:37 AM, Larry Martell <larry.martell at gmail.com> wrote:
>>> Anyone have any code or know of any packages for validating a regexp?
>>>
>>> I have an app that allows users to enter regexps for db searching.
>>> When a user enters an invalid one (e.g. 'A|B|' is one I just saw) it
>>> causes downstream issues. I'd like to flag it at entry time.
>>
>> re.compile()? Although I'm not sure that 'A|B|' is actually invalid.
>> But re.compile("(") throws.
>
> Yeah, it does not throw for 'A|B|' - but mysql chokes on it with empty
> subexpression for regexp' I'd like to flag it before it gets to SQL.

Okay, so your definition of validity is "what MySQL will accept". In
that case, I'd feed it to MySQL and see if it accepts it. Regexps are
sufficiently varied that you really need to use the same engine for
validation as for execution.

ChrisA



More information about the Python-list mailing list