是否有使用通配符来定义以下的方式:某些字符不能用逗号替换字符吗?
我想一个"\"
来之前和一个逗号后,当一个逗号没有之前或之后包含"\""
。
我有点不确定如何做否定。
编辑样品数据:
"col1,col2,col3"
应该成为
"\"col1\",\"col2\",\"col3\""
其中 “\””只是意味着一个引号字符串
是否有使用通配符来定义以下的方式:某些字符不能用逗号替换字符吗?
我想一个"\"
来之前和一个逗号后,当一个逗号没有之前或之后包含"\""
。
我有点不确定如何做否定。
编辑样品数据:
"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,所以你可以在开始和结束时添加一个\"
。 (假设分隔符永远只是,
,不包括空格)
对不起,我错过了开始时的报价,是的我也编辑了我的问题 – mezamorphic 2012-04-13 09:56:34
然后只是在开头和结尾添加“你应该得到你想要的:-) – Matten 2012-04-13 09:58:09
我不认为你可以使用这个,因为第二个替换将模式匹配逗号,即使这个逗号在它之前已经有了一个引号。你最终会报价,报价,逗号,报价? – mezamorphic 2012-04-13 10:09:53
更换匹配的一切如下:^(\\\"),^(\\\")
有:\",\"
这意味着什么,但一个反斜杠后跟一个引号,后跟一个逗号,后跟除反斜杠后面加上引号外的任何内容。
这是绝对正确的,因为它不会编译,你是否在某处丢失了引号? – mezamorphic 2012-04-13 09:58:29
可能,没有自己测试。刚刚给了我用Java构建的一般的正则表达式...应该知道引用仍然是一个问题。在这两个组中都将它变成(\\\“),并在组之前使^,否则将会出错......现在编辑 – MarioDS 2012-04-13 10:15:58
Regex.Replace(Line,”^(\\\“ ),^(\\\“)”,“\”,\“”)似乎不起作用?(道歉,如果我在错误的地方插入引号) – mezamorphic 2012-04-13 10:27:14
使用“负看看后面”断言:
(?<!\\),
不能给你一个更好的答案,而无需样品输入/输出。
尝试(?<!\"),(?!\")
,这就是所谓Zero-Width Assertions
我现在很忙,后来解释,遗憾的是。
你的意思是?Regex.Replace(Line,“(?<!\”)“,”(?!\“)”)? – mezamorphic 2012-04-13 10:24:32
我知道这个线程是有点老,但新参观这也可以做到:
string sample = "col1,col2,col3"
string result = sample.Replace("""","");
result = "\"" + result.replace(",","\",\"") + "\""
希望它能帮助!
请显示一些示例输入和输出数据。 – 2012-04-13 09:36:12
这不是全部的事实。请在第二部分的要求中显示样本数据:*当逗号字符在其之前或之后不包含“\”“* – 2012-04-13 09:44:58
我的错误,现在编辑 – mezamorphic 2012-04-13 09:58:51