正则表达式来匹配嵌入在另一个引用字符串中的带引号的字符串
我有一个逗号分隔和引用限定的数据源。 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