Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在scala中未正确拆分字符串_Regex_String_Scala - Fatal编程技术网

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
// )
不管怎么说,下次去看电影吧。 或者谷歌更难回答,这个问题是上周提出的