tags:

views:

36

answers:

1

I'm trying to update a field which contains HTML and I want to find all the rows that have forms in them and remove the form tags and anything in between them, however I'm running into problems with my select and the regex.

SELECT * FROM db.table WHERE body REGEXP "<form[^>].+?>.+?</form>";

and the error I get says: 'repetition-operator operand invalid' from regexp.

I was hoping to make that SELECT into a subselect for an update query but I'm stuck at this point.

+1  A: 

I think your problem is in your form expression. Try the following:

"<form[^>]*>.+?</form>"

Remember that MySQL supports a limited set of regular expression matching and testing.

See this document.

Jason McCreary
Ahh, I wasn't aware MySQL had limitations for regex. It seems that using .+? doesn't work but changing it to be greedy using * works. Thanks for the insight.
Jamie Taniguchi