2013-04-17 2 views
1

Мне нужно проверить, содержит ли строка все колпачки. Однако в круглых скобках он должен игнорировать что-либо. Любые не-буквы тоже в порядке.MySQL Regexp, игнорирует буквы в круглых скобках

Они должны дать истинное:

select binary "ALL CAPS"   regexp "the expr" from dual; 
select binary "CAPS (in paren)" regexp "the expr" from dual; 
select binary "ALL 1:,? CAPS " regexp "the expr" from dual; 

Это должно дать ложные:

select binary "Not All CAps"  regexp "the expr" from dual; 

Я думал о первых делать замены, чтобы удалить что-нибудь в скобках, но не похоже, чтобы быть способ сделать замену регулярными выражениями.

+0

Каким образом решение должно лечить вложенные или несогласованные круглые скобки? Например. CAPS (bla (bla) или даже хуже CAPS (bla? – Szocske

+0

Это вряд ли произойдет, так что это не имеет значения. Что бы ни было проще, я думаю. – user984003

+0

Возможно ли иметь 2 или более круглых скобок? –

ответ

0

Это позволяет что-либо внутри пары круглых скобок, закрывается только снаружи.

^[^a-z]*(\(.*\))?[^a-z]*$ 

EDIT: некоторые звездочки отсутствовали.

+0

Второе и третье выражения дайте False с этим. – user984003

+0

Должно быть так:^[^ az] * (\ (. * \))? [^ az] * $ – Szocske

Смежные вопросы