替换某些字符不跟在逗号后面的字符
本文关键字:字符 替换 | 更新日期: 2023-09-27 18:30:55
有没有办法使用通配符来定义以下内容:
我希望逗号字符前后"'"
,当逗号字符之前或之后不包含"'""
时。
我有点不确定如何进行否定。
编辑示例数据:
"col1,col2,col3"
应该成为
"'"col1'",'"col2'",'"col3'""
其中 "''" 仅表示引号字符串
使用"负面的背后看"断言:
(?<!''),
如果没有示例输入/输出,就无法为您提供更好的答案。
尝试(?<!'"),(?!'")
,这称为零宽度断言
我现在会忙,稍后会解释,对此感到抱歉。
将匹配^('''"),^('''")
以下内容的所有内容替换为:'",'"
逗号,后跟反斜杠后跟引号之外的任何内容。
使用正则表达式或简单的替换:
string s = "col1,col2'",'"col3";
// replace all existing quotes and replace all commas with escaped characters again
string r = s.Replace(''"','').Replace(",","'",'"");
// r = "col1'",'"col2'",'"col3"
但这不会执行示例数据的外观:
"col1,col2,col3" should become "col1'",'"col2'",'"col3'""
这不符合您的规则(查看尾随'"
!也许您想包装所有 col,这样您也可以在开头和结尾添加'"
。(假设分隔符总是,
,不包括空格)
我知道
这个线程有点旧,但对于新访问者来说,这也可以做到:
string sample = "col1,col2,col3"
string result = sample.Replace("""","");
result = "'"" + result.replace(",","'",'"") + "'""
希望对您有所帮助!