我试图用字符 "}{"
将字符串拆分。但是我遇到了一个错误:
> 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]