日期:2014-05-17  浏览次数:20798 次

赐我正确的正则表达式
前置条件
1. csv文件的列采用逗号分隔
2. 列值被双引号包裹
3. 为了固定列值字符串长度,列值右边使用tab或者空格填充

目标: 替换列值中的空格,TAB字符为空字符串(不要替换每行后面的换行符,这样会导致csv文件格式混乱)


CSV文件示例:
列1,列2,列3
"2013-11-17      ", "134.2      ", "234,356.48    "
"2013-11-18      ", "2,678      ", "0             "



我试过:(?<=".?)\s+(?=")
(?<=".*)\s+(?=")
结果都不是我期望的...谁可以帮我?
正则 正则表达式

------解决方案--------------------
streamreader,每读取一行(或readtoend全部读取),替换空格
------解决方案--------------------
string sOutStr = Regex.Replace(sInput, "[ \t]+\"", m => "\"");
------解决方案--------------------

string sOutStr = Regex.Replace(sInput, "[ \t]+\"", m => "\"");

------解决方案--------------------
function delHtmlTag(str) {
           
            var result = str.replace(/(^\s+)
------解决方案--------------------
(\s+$)/g, ""); //去掉前后空格
            return result.replace(/\s/g, "要换的内容"); //去除文章中间空格
        }

------解决方案--------------------
[\\t
------解决方案--------------------
 ]+(?=\")这样就行了
------解决方案--------------------
str=Regex.Replace(str,@"(?<!["",]\s*)\s+","");