Я немного борюсь с некоторым сопоставлением шаблонов в списке [Char]. Я хотел бы извлечь суб-списки, которые заключены в круглые скобки. Таким образом, я хотел бы извлечь «тест» в виде списка [Char], когда был указан «(тест)». Итак, в основном совпадение в List ('(', List [Char], ')'). Я могу сопоставлять List ('(', t, ')'), где t - один символ, но не переменное количество символов.Как сопоставить шаблон по списку ('(', List [Char], ')')?
Как это следует объявить?
val s = "(test)"
s match {
case List('(',t,')') => {
println("matches single character")
}
case '('::x::y => {
//x will be the first character in the List[Char] (after the '(') and y the tail
}
}
Я не верю, что это будет возможно без определения вашего собственного экстрактора, с помощью экстрактора регулярных выражений и т. Д. –
Как и Travis, я бы выбрал выражение регулярного выражения. –
@TravisBrown '+:' и ': +' экстракторов достаточно, и они уже определены в стандартной библиотеке. –