开发者

Regular expression in MySQL to exclude something that has specific word inside brackets

开发者 https://www.devze.com 2022-12-30 11:44 出处:网络
This regular expression is for a MySQL query. I want to exclude the following row because it has something inside the bracket:

This regular expression is for a MySQL query.

I want to exclude the following row because it has something inside the bracket:

bla bla bla bla bla bla (bla bla bla something)

However I want to include the following row, because it does not have something inside the bracket:

bla bla bla (bla bla bla)

I tried this query but it didnt work.

SELECT * FROM table WHERE field NOT REGEXP '((%something%))';

I think this is wrong. I just did trial and error. I like to use a regular expression, but I never understand it completely. Are there any good tutorials/books/links f开发者_高级运维or learning the detail of regular expressions?


Try:

SELECT * FROM table WHERE field NOT REGEXP '\\([^\\)]*something.*\\)'

The regexp is:

\([^\)]*something.*\)

(but MySQL treats \ as a special character so we have to escape it as \).

That means:

\(         - an open-parentheses character ("(" has a special meaning
             in regular expressions, so we have to escape it with "\")
[^\)]      - any character except a ")"...
*          - ... repeated any number of times
something  - the string to match
.          - any character
*          - ... repeated any number of times
\)         - a ")" character
0

精彩评论

暂无评论...
验证码 换一张
取 消