日期:2014-05-18  浏览次数:20882 次

求一个正则表达式,将所有不包括回车符的连续空格字符转换为制表符(\t)
我知道把所有连续的空格转换为某一字符的正则表达式是这样:
mystr = System.Text.RegularExpressions.Regex.Replace(mystr, "\\s+", "\t");

可是这个转换把我不想转换的回车符(\r\n)也转换为\t了。
现在我想保留\r\n,并且把其它所有连续的空格都转换为\t应该怎么表达?最好用正则表达式一步到位。

------解决方案--------------------

C# code


string mystr = "你要匹配的字符串";

Regex re = new Regex(@"[\u0020\u0020]+", RegexOptions.None);

mystr = re.Replace(mystr,"\t");

------解决方案--------------------
探讨
C# code


string mystr = "你要匹配的字符串";

Regex re = new Regex(@"[\u0020\u0020]+", RegexOptions.None);

mystr = re.Replace(mystr,"\t");

------解决方案--------------------
你要说清楚是空格还是空白字符,如果是空格,楼上两位的就行了,如果是空白字符,两种方式

C# code
//字符组支持集合减法
[code=C#]Regex reg = new Regex(@"[\s-[\r\n]]+");
richTextBox2.Text  = reg.Replace(yourStr, "\t");

------解决方案--------------------
探讨

引用:
C# code

(?<=^(?:(?:(?:(?!").)*"(?:(?!").)*){2})*)[\s-[\r\n]]+


这段的意思是。。。?可否解释一二