Обычно вы хотите захватить все части поисковой фразы в одном матче и разбить части фразы с помощью групп, справиться с совпадением, а затем снова совместить следующую фразу. Итак, я собираюсь обойти ваш вопрос, показывая вам, как кодировать, используя этот подход.
Вот некоторый исполняемый код, который показывает, как соответствие и использование группы должным образом:
// Regex to match a "state zip" sequence, and capture each part in its own group
String regex = "(W[AY]|C[AO])\\s+(\\d{5})";
// Some sample input
String input = "blah blah WA 98121 blah blah CA 56679 blah blah";
Matcher matcher = Pattern.compile(regex).getMatcher(input);
while (matcher.find()) { // move to next match, if one exists
String state = matcher.group(1);
String zip = matcher.group(2);
// Work with state and zip values
System.out.println("State = " + state + ", zip = " + zip);
}
Выход:
State = WA, zip = 98121
State = CA, zip = 56679
Обратите внимание, что захватило регулярные выражения групп пронумерованы от 1
.
FYI, группа 0
- полный матч.
Какой метод вы используете для выполнения регулярного выражения? – nneonneo
matcher.group() – Phoenix
Каждый матчи должен совпадать с одной комбинацией состояний-закладок. Попробуйте взглянуть на группу (1), группу (2). – nneonneo