Есть ли способ получить первую часть строки до 4 чисел в ().
Input String: "Some Title (2000) some text." Output String: "Some Title "
Я не хочу перебирать совпадения и получать сначала.Я хочу, чтобы регулярное выражение получало символы перед 4 числами в (), и я хочу, чтобы оно отбрасывало остальную часть текста.
Regexp будет выглядеть примерно так:
(.*)\(\d{4}\).*
Для использования в Java вам нужно экранировать обратную косую черту, а выходная строка находится в группе 1.
Для этого типа текста:
String result = input.split("\\(")[0];
или, если ( может встречаться в первой части:
(
String result = input.split("\\(\\d{4}\\)")[0];
Это работает даже для входных данных, которые вообще не содержат чисел и пустых строк.