替换某些字符不跟在逗号后面的字符

本文关键字:字符 替换 | 更新日期: 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(",","'",'"") + "'""

希望对您有所帮助!