Какие инструменты вы используете для этого?СЭД?Python?Java?
Регулярное выражение, которое вы можете использовать с (например) sed
:
's/DEF\((([^(]*|\([^)]*\))+)\)/DEF("\1")/g'
Значение g
означает глобальное совпадение, а бит в DEF
в основном ищетсовпавшие пары круглых скобок во внешней ((fg)
в вашем примере) или другие не круглые скобки.
Конечно, вы бы приспособили регулярное выражение для вашей конкретной ситуации - например, если вы когда-либо толькоожидайте, что в DEF будут буквенно-цифровые символы и круглые скобки, тогда вместо [^(]
вы можете использовать [a-z0-9]
и т. д.
@ Комментарий NullUserException по-прежнему уместен - вы пометили вопрос java и python, но неуказал, какой инструмент / язык вы собираетесь использовать?
Например, вы можете использовать sed:
echo 'ABC(rgt) ... etc' | sed -r -e 's/DEF\((([^(]*|\([^)]*\))+)\)/DEF("\1")/g'
В любом случае, используете ли вы Java или Python, регулярное выражение, которое я далбудет примерно таким же.