【发布时间】:2013-09-08 20:28:09
【问题描述】:
我被正则表达式的这个问题所困扰。
假设我有一个从包含文件的文件中读取的字符串。
first_name, Hello, "test Drive"
然后我将使用, 作为分隔符来使用split。我会得到
myString[0] = "first_name";
myString[1] = "Hello";
myString[2] = "\"test Drive\"";
我的问题是当系统读取双引号内带有, 的字符串时
first_name, Hello, "test, Drive"
我明白了
myString[0] = "first_name";
myString[1] = "Hello";
myString[2] = "\"test"
myString[3] = "Drive\"";
我的问题
我将如何使用, 作为分隔符拆分字符串,条件是它的左侧和右侧都没有".. 还是有一些更容易的解决方法?
谢谢。
【问题讨论】:
-
这就是使用上下文无关语言提取上下文相关数据的根本问题。好消息是,使用现代正则表达式实现,您可以完成大部分操作,但您不会忘记这样一个事实,即 ... 内的引号内的引号最终达到了可能的极限。考虑使用适当的解析器,例如来自 CSV 库的解析器。
-
您必须更准确、更正式地了解所使用的语法。第一段可以有引号吗?和秒?当引号出现在带引号的字符串中时会附加什么?他们逃脱了吗? BNF 语法定义可能有用...
-
你会得到很多重复,搜索谷歌
skip comma in double quote string split regex,第一页只给你stackoverflow链接:)