Если мы хотим захватить эти буквенно-цифровые символы, разделенные пробелом, и отдельно захватить слово group
, мы можем создать простое выражение, используя изменение:
(group|another_group)|([^\s]+)
, которое мы здесь просто передадим группеили, если есть, другие группы:
(group|another_group)
, затем мы собираем все, кроме пробелов, используя:
([^\s]+)
Тест
import java.util.regex.Matcher;
import java.util.regex.Pattern;
final String regex = "(group|another_group)|([^\\s]+)";
final String string = "group g1 l1 l2 l3 g2 g3.l1\n"
+ "another_group g1 l1 l2 l3 g2 g3.l1";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
RegEx Circuit
jex.im визуализирует регулярные выражения:
