Пример входного файла:
Код: Выделить всё
test test123 - test (bla bla1 (On chutti))
test test123 bla12 teeee (Rinku Singh)
balle balle (testagain) (Rohit Sharma)
test test123 test1111 test45345 (Surya) (Virat kohli (Lagaan))
testagain blae kaun hai ye banda (Ranbir kapoor (Lagaan), Milkha Singh (On chutti) (Lagaan))
Код: Выделить всё
bla bla1
Rinku Singh
Rohit Sharma
Virat kohli
Ranbir kapoor Milkha Singh
- Всегда учитывайте последнее появление круглых скобок () в каждой строке. Нам нужно извлечь значения в этой последней, самой внешней паре круглых скобок.
- Внутри последнего вхождения () извлеките все значения, которые появляются перед каждым вхождением вложенных круглых скобок ().
Например: test test123 - test (bla bla1 (On chutti)) последняя скобка начинается с (bla до до chutti)) поэтому мне нужно bla bla1, поскольку он находится перед внутренним (на чутти). Итак, найдите последнюю скобку, а затем внутри того количества пар скобок, которые нам нужны, чтобы получить данные перед ними, например: в строке testagain blae kaun hai yebanda (Ранбир Капур (Лагаан), Милкха Сингх (Он чутти) (Лагаан))< /code> необходимы Ранбир Капур и Милкха Сингх.
Я попробовал использовать следующее регулярное выражение в рабочей демонстрации регулярного выражения:
Регулярное выражение:
Код: Выделить всё
^(?:^[^(]+\([^)]+\) \(([^(]+)\([^)]+\)\))|[^(]+\(([^(]+)\([^)]+\),\s([^\(]+)\([^)]+\)\s\([^\)]+\)\)|(?:(?:.*?)\((.*?)\(.*?\)\))|(?:[^(]+\(([^)]+)\))$
Предпочитаемые языки: Ищете улучшение этого регулярного выражения ИЛИ Python, ответ awk тоже подойдет. Я сам тоже попробую добавить awk ответ.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ected-data