3

我正在尝试匹配[and ]。但是当我们也将两者用于正则表达式时,我该如何编写一些模式来匹配两个括号?Using\[不起作用,因为它给出了以下行的编译器错误:

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

2 回答 2

5

我会去

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

对于正则表达式。

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

只要您不需要解析嵌套表达式,Regex 就可以正常工作

"""\[[^\]]+\]""".r findAllIn """[[a], [b]]""" toList
res4: List[String] = List([[a], [b])
于 2012-11-09T13:52:00.660 回答
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]
于 2012-11-09T09:02:01.383 回答