如何匹配Regex Scala中的方括号?

时间:2012-11-09 02:18:06

标签: scala

我正在尝试匹配[]。 但是当我们也使用这两个进行正则表达时, 我怎么能写一些模式来匹配两个括号? 使用\[不起作用,因为它给出了以下行的编译器错误:

 regex(new Regex("([^.#; \\t\\r\n(){}\[\]',`\"][^; \\t\\r\\n(){}\[\]',`\"]*|[.][^; \\t\\r\\n(){}\[\]',`\"]+)"))

2 个答案:

答案 0 :(得分:3)

我会去

"""\[[^\]]+\]""".r

表示正则表达式。

"""\[[^\]]+\]""".r findAllIn """[a], [b], [123 Hello]""" toList
res2: List[String] = List([a], [b], [123 Hello])

只要您不需要像

那样解析嵌套表达式,正则表达式就可以正常工作
"""\[[^\]]+\]""".r findAllIn """[[a], [b]]""" toList
res4: List[String] = List([[a], [b])

答案 1 :(得分:1)

val Bracketed = """\[.*?\]""".r

def check(s: String) =
  (Bracketed findAllIn s).toSeq

check("Wrong (curved) thingies") // Nil
check("") // Nil
check("[Hi]") // [Hi]
check("[Hi][There]") // [Hi], [There]
check("[Hi]gap[There]gop") // [Hi], [There]