当前位置: 首页 > 面试题库 >

如何在忽略转义逗号的同时拆分逗号分隔的字符串?

侯和惬
2023-03-14
问题内容

我需要编写一个扩展版本的StringUtils.commaDelimitedListToStringArray函数,该函数具有一个附加参数:转义字符。

所以打电话给我:

commaDelimitedListToStringArray("test,test\\,test\\,test,test", "\\")

应该返回:

["test", "test,test,test", "test"]

我当前的尝试是使用String.split()使用正则表达式拆分String:

String[] array = str.split("[^\\\\],");

但是返回的数组是:

["tes", "test\,test\,tes", "test"]

有任何想法吗?


问题答案:

正则表达式

[^\\],

意思是“匹配不是反斜杠后跟逗号的字符”-这就是为什么模式t,之所以匹配的原因,因为t它是不是反斜杠的字符。

我认为您需要使用某种否定的lookbehind来捕获一个,不以a开头的a,\而不捕获前一个字符,例如

(?<!\\),

(顺便说一句,请注意,我没有故意加倍转义反斜杠以使其更具可读性)



 类似资料:
  • 问题内容: 我有一个模糊的字符串,像这样: 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。(编辑:我想我的意思是那些已经属于JDK或已经属于诸如Apache Commons之类的常用库的库。) 上面的字符串应分为: 注意:这不是CSV文件,它是文件中包含的单个字符串,具有较大的整体

  • 问题内容: 我有这样一个字符串: 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。 上面的字符串应分为: 问题答案: 可以使用正则表达式 输出:

  • 在逗号处划分字符串的最佳方法是什么,这样每个单词都可以成为ArrayList的一个元素? 例如:

  • 问题内容: 我有一个像这样的字符串: 上面的字符串应分为: 问题答案: 我认为最简单的解决方案是处理输入字符串char-by-char: 例: 作为免费赠品,此解决方案还根据需要计算嵌套括号: 它还检查括号是否平衡(每个开放的括号都有相应的结束符)。

  • 我有一根下面这样的弦- value1,value2,value3,value4,“value5,1234”,value6,value7,“value8”,value9,“value10,123.23”

  • 问题内容: 我已经看到了许多相关的问题,但是都没有直接解决我想做的事情。我正在从CSV文件中读取文本行。 所有项目都用引号引起来,有些则在引号内有其他逗号。我想按逗号分隔行,但忽略引号内的逗号。有没有一种方法可以在Python中执行此操作,而无需使用许多正则表达式语句。 一个例子是: 我想将其解析为4个单独的值变量: 我想念一个简单的选择吗? 问题答案: 不要尝试重新发明轮子。 如果要读取CSV文