我有一个逗号分隔的数据源,并且引用限定.一张CSV.但是,数据源提供程序有时会做一些不稳定的事情.我已经补偿了除了其中一个之外的所有人(我们逐行阅读文件,然后在清理后将其写回来),我正在寻找解决最后剩下的问题,当我的正则表达式相当弱.
在另一个带引号的字符串中匹配一个带引号的字符串
所以这是我们的示例字符串......
"foobar", 356, "Lieu-dit "chez Métral", Chilly, FR", "-1,000.09", 467, "barfoo", 1,345,456,235,231, "935.18"
Run Code Online (Sandbox Code Playgroud)
我希望匹配子串"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"
Run Code Online (Sandbox Code Playgroud)
我知道我可以定义一个模式,比如(?<quotedstring>\"\w+[^,]+\")匹配引用的字符串,但我的正则表达式很弱(数据库开发人员,几乎从不使用C#),所以我不确定如何匹配命名组quotedstring中的另一个引用字符串.
仅供参考:对于那些注意到用逗号格式但没有引用限定格式的大整数的人来说,已经处理过了.随机使用行分隔符(有时是CR,有时是LF).其他问题......
替换为这个regex
(?<!,\s*|^)"([^",]*)"
Run Code Online (Sandbox Code Playgroud)
现在将其替换为$1
在这里试试
"带着它逃跑""会变成
(?<!,\s*|^)""([^"",]*)""
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |