有没有办法使用通配符来定义以下内容:
当逗号字符之前或之后"\"
不包含 a 时,我希望 a出现在逗号之前和之后。"\""
我有点不确定如何进行否定。
编辑样本数据:
"col1,col2,col3"
应该成为
"\"col1\",\"col2\",\"col3\""
其中 "\"" 仅表示引号字符串
我知道这个线程有点旧,但对于新访问者来说,也可以这样做:
string sample = "col1,col2,col3"
string result = sample.Replace("""","");
result = "\"" + result.replace(",","\",\"") + "\""
希望能帮助到你!
使用“负面观察”断言:
(?<!\\),
如果没有示例输入/输出,无法给您更好的答案。
使用正则表达式或简单替换:
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,因此您也可以\"
在开头和结尾添加 a。(假设分隔符总是 just ,
,不包括空格)
将与以下内容匹配的所有内容替换^(\\\"),^(\\\")
为:\",\"
这意味着除了反斜杠后跟引号,后跟逗号,后跟除反斜杠后跟引号之外的任何内容。
Try (?<!\"),(?!\")
,这称为零宽度断言
我现在很忙,稍后再解释,抱歉。