ris*_*p89 29 string split scala
以下是我的REPL输出.我不确定为什么string.split在这里不起作用.
val s = "Pedro|groceries|apple|1.42"
s: java.lang.String = Pedro|groceries|apple|1.42
scala> s.split("|")
res27: Array[java.lang.String] = Array("", P, e, d, r, o, |, g, r, o, c, e, r, i, e, s, |, a, p, p, l, e, |, 1, ., 4, 2)
Run Code Online (Sandbox Code Playgroud)
Rex*_*err 75
如果使用引号,则需要正则表达式拆分. |是"或"字符,所以你的正则表达式什么都不匹配.所以一切都是分裂的.
如果您使用split('|')或者split("""\|""")您应该得到您想要的.
|是一个特殊的正则表达式字符,用作操作的逻辑运算符OR.
由于java.lang.String#split(String regex); 接受一个正则表达式,你将字符串拆分为"none OR none",这是关于正则表达式拆分的另一个特性,其中没有一个实质上意味着"在每个单个字符之间".
为了得到你想要的东西,你需要正确地逃避你的正则表达式.逃脱模式,你需要预先考虑性格\既然\是一个特殊String字符(想\t和\r为例),实际上你需要双逃逸,让你结了s.split("\\|").
有关完整的Java正则表达式语法,请参阅java.util.regex.Pattern javadoc.
| 归档时间: |
|
| 查看次数: |
18243 次 |
| 最近记录: |