2015-06-30 3 views
-4

Пример ввода:Регулярное выражение для нетипичных скобок

Ala ma kota (ASD defect - 7) kot ma ale. 

Идеальный выход:

(ASD defect - 7) 

Как разобрать этот текст из скобок?

+0

Какой язык/регулярное выражение вкус? Могут ли быть вложенные круглые скобки? Что вы пробовали? (Prosimy o szczegóły) –

+0

Я пытаюсь построить шаблон GROK с регулярным выражением (https://grokdebug.herokuapp.com/) – user3328186

+0

Как насчет '\ ((? [^()] *) \)'? Или - включая круглые скобки - '(? \ ([^()] * \))'? –

ответ

1

В Grok, вам нужно следующее регулярное выражение с именем группы захвата:

\((?<name>[^()]*)\) 

Это будет соответствовать текст внутри скобок за исключением скобок. Чтобы включить их, просто поместите их в группу захвата:

(?<name>\([^()]*\)) 

Отрицаемый символьный класс [^()]* матчей 0 или больше символов, отличных ) и (.

UPDATE:

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

(?<sth2>\bwid:\s*(?<wid>\d+)) 

enter image description here

+0

Бонусный ответ: '\ bwid: \ s * (? \ d +)'. –

+0

\ bwid: \ s * (? \ d +) отлично работает здесь: https://regex101.com/, но у меня есть проблема с созданием из них шаблона GROK ... – user3328186

+0

Вам нужно быть более явным, разместите свой пытается задать вопрос и объяснить, что работает, а что нет. –

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