解析不在逗号之间的空格的简便方法是什么?

12 浏览
0 Comments

解析不在逗号之间的空格的简便方法是什么?

有没有一种简短的方法(可能是str.split的变体)可以通过空格来解析字符串,同时忽略引号之间的空格?

例子:

this should be split "this is not" and so on

结果:

[0] - this;[1] - should;[2] - be;[3] - split;[4] - "this is not";[5] - and;[6] - so;[7] - on;

谢谢

0
0 Comments

问题的出现原因是需要解析字符串中的非逗号处的空格。解决方法是使用正则表达式来拆分字符串,并基于匹配结果进行相应的处理。

在给出的代码中,使用了正则表达式来拆分字符串。这个正则表达式是" +(?=([^\"]*\"[^\"]*\")*[^\"]*$)"。它的含义是只在右边有偶数个引号的地方进行拆分。这个正则表达式没有考虑到转义引号的情况,但是解决起来并不难,只是会使代码难以阅读。

对于这种情况,我认为使用Matcher进行匹配比使用split更灵活。为什么灵活性很重要呢?因为任务是拆分字符串。为什么要使用多行代码,当一行就能完成任务呢?

例如,在引号的数量为奇数的情况下,或者在引号后面紧跟着字符的情况下,使用Matcher更容易自定义正则表达式,而不是使用split。

0