Подтвердить что ты не робот

Регулярное выражение для выхода из круглых скобок

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

Это строка:

"abc(blah (blah) blah()...).def(blah() (blah).. () ...)"

Я хочу, чтобы это было обнаружено:

abc().def() 

Используя этот код, он возвращает false.

 str.match(/abc\([^)]*\)\.def\([^)]*\)/i);

Не могли бы вы рассказать мне, почему мое регулярное выражение не работает?

4b9b3361

Ответ 1

Это регулярное выражение будет соответствовать строке, которую вы указали:

(abc\().+(\)\.def\().+(\))

И используя обратные ссылки $1$2$3 создаст abc().def()

Или просто используйте это, если вам не нужны обратные ссылки:

abc\(.+\)\.def\(.+\)

Ответ 2

K... Здесь Идея...

abc(blah (blah) blah()).def(blah() (blah).blah())

Используйте regExp, как этот

var regExp1 = \^([a-z])*\(\ig;

он будет соответствовать

abc(

затем используйте

var regExp2 = /\)\./

он будет соответствовать

")." 

в строке.

затем разделите фактическую строку так, чтобы она стала

def(blah() (blah).blah())

повторить, пока регулярное выражение не сможет найти

regExp2 

и добавьте закрывающий кронштейн. Самое простое решение, о котором я мог подумать. Надеюсь, что это поможет.