У меня есть текст что-то вроде этого:Scala регулярного выражения - Как соответствует внутри фигурных скобок, но побег фигурных скобок себя
text {text10}
text {text1, text9}
anotherText [
{text2, text5}
{text3, text6}
{test4, text8}
]
Этого матча регулярного выражения все, что я хочу:
val regex = """(.*?) (\[.*?\]|\{(.*?)\})""".r
Однако я есть небольшая проблема. Я не хочу, чтобы соответствовать фигурным скобкам. Таким образом, я получил выход в
val line = regex findAllIn configByLines
line.matchData foreach {
m => println("output: "+m.group(2))
}
#output: {text10}
#output: {text1, text9}
#output: [{text2, text5} {text3, text6} {test4, text8}]
Но я хотел бы получить выход для группы (2), как
#output: text10
#output: text1, text9
#output: {text2, text5} {text3, text6} {text4, text8}
Как я могу исправить мое регулярное выражение.
Это не возможно производить 'TEXT2 text3' в одной игре (или группы).У вас может быть шаблон, который создает '{text2} {text3}' или тот, который заключает 'text2' в группе захвата 1,' text3' в группе захвата 2 и т. Д. - и в этом случае вы можете захватывать только ограниченное число слов , –
Я отредактировал свой вопрос, потому что в третьем случае мне нужно продолжать группировку. –