Scala模式语法异常



我试图用字符 "}{"将字符串拆分。但是我遇到了一个错误:

> val string = "{one}{two}".split("}{")
java.util.regex.PatternSyntaxException: Illegal repetition near index 0
}{
^

我不是要使用正则义务或其他任何东西。我尝试使用"}{",但它也不起作用。

好吧...原因是 split将其参数字符串视为正则表达式。

现在,{}都是正则表达式中的特殊字符。

因此,您将不得不跳过split的论点的Regex World的特殊字符,

val string = "{one}{two}".split("\}\{")
// string: Array[String] = Array({one, two})

逃脱 {

val string = "{one}{two}".split("}\{")

有两种方法可以将金属杆菌视为普通特征:

->在Metacharacter之前用后斜切。

String[] ss1 = "{one}{two}".split("[}\{]+");
System.out.println(Arrays.toString(ss1));   
output:
[one, two]

->将其包装在 q(启动引用)和 e(结束)中。 使用此技术时,只要 q首先,就可以将 q和 e放置在表达式中的任何位置。

String[] ss2 = "{one}{two}".split("[}\Q{\E]+");
System.out.println(Arrays.toString(ss2));   
output:
[one, two]

最新更新