gpt4 book ai didi

regex - Scala中的分割线是什么意思?

转载 作者:行者123 更新时间:2023-12-04 13:32:59 24 4
gpt4 key购买 nike

我对某些Scala代码有问题,在这里找到了这条分割线。在我只使用像这样的分割线之前:

var newLine = line.split(",")

但是这种 split 是什么意思呢?
var newLine2 = line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)")

我需要拆分的行如下所示:
1966, "Green, Green Grass of Home", Tom Jones, 850000

提前致谢!

最佳答案

split方法中的字符串定义了一个regular expression
(?=([^\"]*\"[^\"]*\")*[^\"]*$)positive lookahead assertion。这意味着在逗号上分割,但前提是模式([^\"]*\"[^\"]*\")*[^\"]*$在逗号后。

([^\"]*     # a series of non double quote characters
\" # a double quote
[^\"]* # a series of non double quote characters
\") # a double quote
* # repeat that whole group 0 or more times
[^\"]*$ # a series of non double quote characters till the end of the string

这意味着,当逗号后面有相等数量的双引号时,它将仅对逗号进行拆分,因此,仅当逗号不在双引号内时, 才会拆分。 (这将起作用,只要字符串中仅包含双引号即可。)

关于regex - Scala中的分割线是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16891890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com