我正在尝试匹配[
和]
。
但是当我们也使用这两个进行正则表达时,
我怎么能写一些模式来匹配两个括号?
使用\[
不起作用,因为它给出了以下行的编译器错误:
regex(new Regex("([^.#; \\t\\r\n(){}\[\]',`\"][^; \\t\\r\\n(){}\[\]',`\"]*|[.][^; \\t\\r\\n(){}\[\]',`\"]+)"))
答案 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]