Я пытаюсь выяснить проблему с регулярными выражениями Java, которая у меня возникла. Это 1.6, но я не думаю, что это имеет значение. Во всяком случае ...
У меня будут некоторые входные данные, подобные следующим ...
"Blah yadda yidda 44-Barack Obama, this that the other"
или
"Something here, there 22-Hyphenated-example. Hi there folks"
По сути, я хочу извлечь все после числа до конечной пунктуации. В двух примерах ввода я хочу извлечь ...
"Barack Obama"
и
"Hyphenated-example"
Я не могу понять шаблон, который мне нужен. Самое близкое, что я могу получить, это ...
"[0-9]{1,2}-([A-Z -]*\\b*)"
что, однако, дает мне ...
"44-Barack Obama"
Мой код ...
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Blah yadda yidda 44-Barack Obama, this that the other");
if (matcher.find())
// This gives me "44-Barack Obama" but I want "Barack Obama".
System.out.println(matcher.group());
Интересно, что я использую плагин QuickREx Eclipse для проверки этого шаблона, и он возвращает правильное значение. Тем не менее, выполнение приведенного выше кода не.
Есть идеи?