0

有没有办法使用通配符来定义以下内容:

当逗号字符之前或之后"\"不包含 a 时,我希望 a出现在逗号之前和之后。"\""

我有点不确定如何进行否定。

编辑样本数据:

"col1,col2,col3" 

应该成为

"\"col1\",\"col2\",\"col3\""

其中 "\"" 仅表示引号字符串

4

5 回答 5

0

我知道这个线程有点旧,但对于新访问者来说,也可以这样做:

string sample = "col1,col2,col3" 
string result = sample.Replace("""","");
result = "\"" + result.replace(",","\",\"") + "\""

希望能帮助到你!

于 2013-05-31T05:23:08.363 回答
0

使用“负面观察”断言:

(?<!\\),

如果没有示例输入/输出,无法给您更好的答案。

于 2012-04-13T09:48:40.920 回答
0

使用正则表达式或简单替换:

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 ,,不包括空格)

于 2012-04-13T09:44:17.327 回答
0

将与以下内容匹配的所有内容替换^(\\\"),^(\\\")为:\",\"

这意味着除了反斜杠后跟引号,后跟逗号,后跟除反斜杠后跟引号之外的任何内容。

于 2012-04-13T09:44:27.193 回答
0

Try (?<!\"),(?!\"),这称为零宽度断言

我现在很忙,稍后再解释,抱歉。

于 2012-04-13T09:49:14.663 回答