Я пытаюсь использовать регулярное выражение, чтобы захватить 2 части одной полной строки. У меня есть регулярное выражение работает отлично на http://gskinner.com/RegExr/Группы регулярных выражений Java. * Vs normal regex
Вот пример строки:
Regex is fun when it works 99
Вот мой Regex
(.*)\\s+(\\d+)$
Это группы, которые я получаю при использовании Искателя в Java (спички()) и рисунок:
1: Regex is fun when it works 99
2: Regex is fun when it works
Использование нормального регулярного выражения (на RegExr), я получаю результаты, которые я на самом деле ожидать:
1: Regex is fun when it works
2: 99
Есть ли какие-либо предостережений при тушении Regex в Java, что мне нужно, чтобы быть в курсе? У меня уже есть \\ для специальных символов. Может быть, есть трюк в использовании. ?
Если вы хотите, образец приложение для копирования и вставки:
String str = "Regex is fun when it works 33";
String regx = "(.*)\\s+(\\d+)$"
Pattern p = Pattern.compile(regx);
Matcher m = p.matcher(str);
if (m.matches()) {
for (int i = 0; i < m.groupCount(); i++) {
System.out.println(i + ": " + m.group(i));
}
}
+1 для примера кода. – MikeM