【发布时间】:2021-04-20 16:08:50
【问题描述】:
所以我的输入字符串如下所示:
“O2TV,SportTV”,Netflix /603605506,2016-01-02 15:15:01
年度订阅,Netflix /602602602,2016-01-02 10:55:32
权力的游戏,Netflix /602602602,2016-01-02 09:49:09
我正在反转它们并尝试拆分
line = StringService.reverseIt(line);//reversing line so we can split it from end
String[] splitString = line.split("([ ./])", 5);
但是因为我的正则表达式不正确,所以我的拆分不正确,它看起来像这样:
时间 = 22:13:11
数据为 = 2016-02-29
电话是 = 604606321,
提供者是 =
注意 = 987654321、Netflix 的充电
如果我在正则表达式中只留下空格,它会正确拆分,但我的字符串两侧有不需要的字符。所有输入数据从后向都有相同的模式,它是:空格()然后逗号(,)然后斜杠(/)然后逗号(,)。我需要使用的正确正则表达式是什么?提前谢谢大家!
【问题讨论】:
-
解析逗号分隔的文本行,带引号的值:使用 CSV 库, 不要为此使用正则表达式。
-
@Andreas 感谢您的回答,但它们不仅是逗号分隔的。每行又是空格、逗号、反斜杠和逗号
-
@Bonuseto 我猜你误解了这个概念。您提供的字符串是 CSV。仅仅因为您以不同的方式解析内容并不会使其无效 CSV。您只需对提取的 CSV 值应用拆分逻辑(从时间开始的日期)。
-
@Andreas 但我不是从时间中拆分唯一的日期,而是拆分所有五个部分:时间、数据、电话、提供和注释,我需要根据空格拆分它们,逗号和反斜杠
-
使用 CSV 解析器以逗号分隔(这将处理逗号在引号内的情况)。然后,您可以根据需要使用 String#split 拆分其他部分。