我有一个可以通过迭代解决的问题,但我想知道是否有使用正则表达式的更优雅的解决方案和split()
我有一个字符串(excel放在剪贴板上),本质上是逗号分隔的。需要注意的是,当单元格值包含逗号时,整个单元格会用引号括起来(大概是为了转义该字符串中的逗号)。示例字符串如下:
123,12,"12,345",834,54,"1,111","98,273","1,923,002",23,"1,243"
现在,我想优雅地将此字符串拆分为单个单元格,但问题是我不能使用以逗号作为分隔符的正常拆分表达式,因为它会拆分值中包含逗号的单元格。另一种看待这个问题的方法是,如果逗号前面有偶数个引号,我只能用逗号分割。
这很容易用循环解决,但我想知道是否有一个正则表达式.split 函数能够捕获这个逻辑。为了解决这个问题,我为逻辑构造了确定性有限自动机 (DFA)。
现在的问题被简化为以下问题:有没有办法拆分这个字符串,以便在 DFA 中每次达到最终状态(此处为状态 4)时产生一个新的数组元素(对应于 /s)?