是否有任何方法将字符串分为基于角度括号的部分,所以
1<2>3<4>
应成为["1", "<2>", "3", "<4>"]
。
我尝试过"1<2>3<4>".split("<([^>]*)>")
,但这仅给我["1", "3"]
with lookaheads:
scala> val s = "1<2>3<4>"
scala> s.split("(?=<)|(?<=>)")
res6: Array[String] = Array(1, <2>, 3, <4>)
请参阅(?=X)
和(?<=X)
。
您可以在打开括号前或关闭括号之后使用LookArounds拆分:
(?=<)|(?<=>)
demo
REGEX在常规数字上找到,或者周围有括号的人
scala> """d+|(<d+>)""".r.findAllIn("1<2>3<4>").toArray
res0: Array[String] = Array(1, <2>, 3, <4>)
也可以做"""<?d+>?""".r