我有一个数据源,它是逗号分隔的,并加上引号限定符。一个CSV文件。然而,数据源提供者有时会做一些奇怪的事情。我已经解决了其中除一个之外的所有问题(我们逐行读取文件,然后在清理后将其写回),现在我正在寻找解决最后一个问题的方法,但我的正则表达式技巧相当弱。
匹配一个引号包含在另一个引号中的字符串的例子如下:...
我希望匹配子字符串"chez Métral",以便用子字符串"chez Métral"替换它。理想情况下,只需尽可能少的代码行数实现。最终目标是将该行写回(或将其作为方法返回值返回),并已经完成替换。
因此,我们的示例字符串最终变为...
匹配一个引号包含在另一个引号中的字符串的例子如下:...
"foobar", 356, "Lieu-dit "chez Métral", Chilly, FR", "-1,000.09", 467, "barfoo", 1,345,456,235,231, "935.18"
我希望匹配子字符串"chez Métral",以便用子字符串"chez Métral"替换它。理想情况下,只需尽可能少的代码行数实现。最终目标是将该行写回(或将其作为方法返回值返回),并已经完成替换。
因此,我们的示例字符串最终变为...
"foobar", 356, "Lieu-dit chez Métral, Chilly, FR", "-1,000.09", 467, "barfoo", 1,345,456,235,231, "935.18"
我知道我可以定义一个模式,例如(?<quotedstring>\"\w+[^,]+\")
来匹配带引号的字符串,但是我的正则表达式技能不强(数据库开发人员,几乎从不使用C#),因此我不确定如何在命名组quotedstring中匹配另一个带引号的字符串。
对于那些注意到用逗号格式化但没有引号限定的大整数的人来说,已经处理了。与随机使用行分隔符(有时是CR,有时是LF)一样。还有其他问题...