Regex 在scala中未正确拆分字符串
我有一个字符串:Regex 在scala中未正确拆分字符串,regex,string,scala,Regex,String,Scala,我有一个字符串: var string = "PRODUCTIDENTIFIER|UTLEVEL10|UTLEVEL10DESCRIPTION|UTLEVEL15|UTLEVEL15DESCRIPTION|UTLEVEL17|UTLEVEL17DESCRIPTION|UTLEVEL20|UTLEVEL20DESCRIPTION|UTLEVEL30|UTLEVEL30DESCRIPTION|ACCT_YR|UTCODE" 当我尝试执行string.split(“|”)时,它会给出数组中所有单词的
var string = "PRODUCTIDENTIFIER|UTLEVEL10|UTLEVEL10DESCRIPTION|UTLEVEL15|UTLEVEL15DESCRIPTION|UTLEVEL17|UTLEVEL17DESCRIPTION|UTLEVEL20|UTLEVEL20DESCRIPTION|UTLEVEL30|UTLEVEL30DESCRIPTION|ACCT_YR|UTCODE"
当我尝试执行string.split(“|”)
时,它会给出数组中所有单词的所有字母,如:
scala> string.split("|")
res0: Array[String] = Array(|, P, R, O, D, U, C, T, I, D, E, N, T, I, F, I, E, R, |, U, T, L, E, V, E, L, 1, 0, |, U, T, L, E, V, E, L, 1, 0, D, E, S, C, R, I, P, T, I, O, N, |, U, T, L, E, V, E, L, 1, 5, |, U, T, L, E, V, E, L, 1, 5, D, E, S, C, R, I, P, T, I, O, N, |, U, T, L, E, V, E, L, 1, 7, |, U, T, L, E, V, E, L, 1, 7, D, E, S, C, R, I, P, T, I, O, N, |, U, T, L, E, V, E, L, 2, 0, |, U, T, L, E, V, E, L, 2, 0, D, E, S, C, R, I, P, T, I, O, N, |, U, T, L, E, V, E, L, 3, 0, |, U, T, L, E, V, E, L, 3, 0, D, E, S, C, R, I, P, T, I, O, N, |, A, C, C, T, _, Y, R, |, U, T, C, O, D, E)
我实际期望的是字符串将根据|
标记进行拆分。你知道为什么这不起作用吗?你需要避开它:
scala> string.split("\\|")
res0: Array[String] = Array(PRODUCTIDENTIFIER, UTLEVEL10, UTLEVEL10DESCRIPTION, UTLEVEL15, UTLEVEL15DESCRIPTION, UTLEVEL17, UTLEVEL17DESCRIPTION, UTLEVEL20, UTLEVEL20DESCRIPTION, UTLEVEL30, UTLEVEL30DESCRIPTION, ACCT_YR, UTCODE)
|
是一个正则表达式特殊字符
string.split('|')
// val res: Array[String] = Array(
// PRODUCTIDENTIFIER,
// UTLEVEL10,
// UTLEVEL10DESCRIPTION,
// UTLEVEL15,
// UTLEVEL15DESCRIPTION,
// UTLEVEL17,
// UTLEVEL17DESCRIPTION,
// UTLEVEL20,
// UTLEVEL20DESCRIPTION,
// UTLEVEL30,
// UTLEVEL30DESCRIPTION,
// ACCT_YR,
// UTCODE
// )
请尝试
string.split(\\\;”)
您也可以使用以单个字符为单位的拆分
string.split('|')
// val res: Array[String] = Array(
// PRODUCTIDENTIFIER,
// UTLEVEL10,
// UTLEVEL10DESCRIPTION,
// UTLEVEL15,
// UTLEVEL15DESCRIPTION,
// UTLEVEL17,
// UTLEVEL17DESCRIPTION,
// UTLEVEL20,
// UTLEVEL20DESCRIPTION,
// UTLEVEL30,
// UTLEVEL30DESCRIPTION,
// ACCT_YR,
// UTCODE
// )
不管怎么说,下次去看电影吧。
或者谷歌更难回答,这个问题是上周提出的