我有一个逗号分隔和引号限定的数据源。一个 CSV。但是,数据源提供者有时会做一些不稳定的事情。我已经补偿了除其中一个之外的所有问题(我们逐行读取文件,然后在清理后将其写回),当我的 regex-fu 非常弱时,我正在寻找解决最后一个问题.
在另一个带引号的字符串中匹配带引号的字符串
所以这是我们的示例字符串...
"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+[^,]+\")
匹配带引号的字符串,但是我的 regex-fu 很弱(数据库开发人员,几乎从不使用 C#),所以我不确定如何匹配命名组中的另一个带引号的字符串quotedstring。
仅供参考:对于那些注意到用逗号格式化但没有引号限定的大整数的人来说,这已经被处理了。随机使用行分隔符(有时是 CR,有时是 LF)也是如此。作为其他问题...