Я пытаюсь сформулировать регулярное выражение в Java для захвата нескольких строк в списке с разделителями пробелов. Вот строка Я пытаюсь захватить с ...Соответствие по подстрокам в разделительном списке с использованием Regex
String output = "regulations { qux def } standards none rules { abc-123 456-defghi wxyz_678 } security { enabled }";
И я хочу использовать регулярное выражение для сопоставления каждого слова в пространстве-разделителями списка между скобками сразу после rules
. Другими словами, я хотел бы, чтобы регулярное выражение соответствовало abc-123
, 456-defghi
и wxyz_678
. Эти подстроки в этом списке могут содержать любые символы, кроме пробелов, и в списке может быть любое количество подстрок; Я только что использовал приведенные выше 3 специально для иллюстрации на примере. Ниже не работает, так как мне нужно изменить, чтобы быть в состоянии соответствовать несколько раз ...
String regex = "rules\\s\\{\\s([^\\s]*)\\s\\}";
final Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(output);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
Как я могу изменить приведенное выше регулярное выражение для учета несколько возможных совпадений и получить следующий вывод?
abc-123
456-defghi
wxyz_678
Нужен ли вам подход с регулярным выражением? Я думаю, что двухэтапный подход будет более читабельным. –
Честно говоря, я бы очень хотел увидеть как одно, так и двойное регулярное выражение для моего собственного обучения ... – user2150250