Удаление строки перед открывающей скобкой с помощью регулярного выражения - PullRequest
0 голосов
/ 16 мая 2019

У меня есть выражение Nvl (стоимость, сумма (стоимость1)) мне нужно удалить строку перед парантезом, т.е. NVl и Sum в этом случае

        String functions=externalFormat.replaceAll("\\([^\\(]*\\)", "");

Input Nvl (стоимость, сумма (Cost1) Стоимость продукции, стоимость 1

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Если вы не можете использовать группы захвата (т. Е. Если вы МОЖЕТЕ использовать группы захвата, (\w*?)\( захватит текст, который нужно заменить в первой группе)

Вы можете использовать положительный прогноз для захвата только тех слов (букв или цифр), которые появляются перед открытой скобкой:

\w*(?=\()

Вы можете даже добавить дополнительные символы пробела в случае таких вещей, как: Nvl1 (cost,Sum (cost1)), включив их перед просмотром: -

\w*\s*(?=\()

Надеюсь, это поможет решить вашу проблему.

0 голосов
/ 16 мая 2019

Проверьте ниже код:

public static void main(String[] args) {
        String externalFormat="Nvl(cost,Sum(Cost1)";
        String functions=externalFormat.replaceAll("\\w+\\(|\\)", "");
        System.out.println(functions.toLowerCase());

    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...