我正在寻找正则表达式来在Java中执行以下操作:
String originalString = "";
String splitString[] = originalString.spilt(regex);
一些测试用例:
Original1: foo bar "simple"
Spilt1: { "foo", "bar", "\"simple\"" }
Original2: foo bar "harder \"case"
Spilt2: { "foo", "bar", "\"harder \"case\"" }
Original3: foo bar "harder case\\"
Spilt3: { "foo", "bar", "\"harder case\\"" }
我遇到过的一些片段:
# Does not react to escaped quotes
(?=([^\"]*\"[^\"]*\")*[^\"]*$)
# Finds relevant quotes that surround args
(?<!\\)(?:\\{2})*\"
Thanks!
像这样的正则表达式适用于简单的情况:
("(.+?)(?<![^\\]\\)")|\S+
但我不建议使用 RegEx 来完成此任务,而是看一下 CSV 解析器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)