正则表达式来匹配嵌入在另一个引用字符串中的带引号的字符串

我有一个逗号分隔和引用限定的数据源。 CSV。 但是,数据源提供者有时会做一些不起眼的事情。 我已经补偿了除了其中一个之外的所有人(我们逐行读入文件,然后在清洗后将其写回),并且当我的正则表达式相当弱时,我正在寻求解决最后剩下的问题。

匹配另一个引用字符串中的引用字符串

所以这里是我们的示例字符串...

"foobar", 356, "Lieu-dit "chez Métral", Chilly, FR", "-1,000.09", 467, "barfoo", 1,345,456,235,231, "935.18"

我期待匹配子字符串“chezMétral” ,以便用子字符串chezMé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)。 作为其他问题......


用这个regex替换

(?<!,s*|^)"([^",]*)"

现在用$1替换它

在这里尝试


逃脱"""会变成

(?<!,s*|^)""([^"",]*)""
链接地址: http://www.djcxy.com/p/66467.html

上一篇: Regular Expression to match a quoted string embedded in another quoted string

下一篇: style bold not correctly applied in Chrome on this website