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

Как заменить строку в круглых скобках с помощью регулярного выражения?

У меня есть строка:

HLN (Formerly Headline News)

Я хочу удалить все внутри парнеров и самих парнеров, оставив только:

HLN

Я попытался сделать это с помощью регулярного выражения, но моя трудность связана с этим шаблоном:

"(.+?)"

Когда я использую его, он всегда дает мне PatternSyntaxException. Как я могу исправить свое регулярное выражение?

4b9b3361

Ответ 1

Поскольку скобки являются специальными символами в регулярных выражениях, вам необходимо избегать их, чтобы они явно соответствовали.

Например:

"\\(.+?\\)"

Ответ 2

String foo = "(x)()foo(x)()";
String cleanFoo = foo.replaceAll("\\([^\\(]*\\)", "");
// cleanFoo value will be "foo"

Приведенное выше удаляет пустую и непустую скобки с обеих сторон строки.

регулярное выражение:

\([^\(]*\)

Вы можете протестировать здесь: http://www.regexplanet.com/simple/index.html

Мой код основан на предыдущих ответах

Ответ 3

Вы можете использовать следующее регулярное выражение для поиска скобок:

\([^)]*\)

\( совпадает с левой скобкой, [^)]* соответствует любому числу символов, отличных от правильной круглой скобки, а совпадение \) в правой скобке.

Если вы включаете это в строку java, вы должны избегать символов \, как показано ниже:

String regex = "\\([^)]*\\)";

Ответ 4

String foo = "bar (baz)";
String boz = foo.replaceAll("\\(.+\\)", ""); // or replaceFirst

boz теперь "bar "