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

以逗号分隔的分隔字符串,不考虑方括号中的逗号

水睿
2023-03-14
问题内容

我有一个像

s="abc, 3rncd (23uh, sdfuh), 32h(q23q)89 (as), dwe8h, edt (1,wer,345,rtz,tr t), nope";

我想把它分成那些字符串

String[] parts={"abc", "3rncd (23uh, sdfuh)", "32h(q23q)89 (as)", "dwe8h", "edt (1,wer,345,rtz,tr t)", "nope"};

如果我简单地打电话给我,s.split(",")那么在修剪之后我会得到不同的结果,因为在某些字符串中,例如"3rncd (23uh, sdfuh)",仍然有一个逗号。但我不想放在方括号中。有解决这个问题的优雅方法吗?


问题答案:

假设()没有嵌套和未转义。您可以使用以下方式进行拆分:

String[] arr = input.split(",(?![^()]*\\))\\s*");

正则演示

,(?![^()]*\))如果逗号后面没有非圆括号和),则将匹配逗号,从而忽略(和中的逗号)



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

  • 问题内容: 我有从.net应用程序A,B,C,D,E,F获取的字符串, 我想写一个SQL选择语句像 这在t-SQL中将不起作用,因为它使用不将值分开的一个字符串。有什么办法可以做到这一点? 问题答案: 它认为最简单的方法是动态SQL生成:

  • 问题内容: 我想以逗号分隔Python多行字符串,除非逗号在方括号内。例如,字符串 应该分成 这涉及到括号匹配,因此正则表达式可能在这里没有帮助。PyParsing有这 几乎 做什么我需要的,只是 引用 ()环境得到保护,而不是-delimited的。 有什么提示吗? 问题答案: 编写自己的自定义拆分功能:

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

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

  • 问题内容: 我从数据库中得到了String,它有多个逗号()。我想删除 最后一个逗号, 但实际上找不到一种简单的方法。 我有的: 我想要的是: 问题答案: 要删除紧随字符串结尾的部分,您可以执行以下操作: 相对于/ solution,它需要对此类情况进行特殊处理,这可以优雅地处理空列表(空字符串)。 示例代码: 注意: 由于存在有关零件的一些注释和建议的编辑:表达式应与要删除的尾部零件匹配。 如果