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

求一正则表达式,有点难度(30分)
我想替换一段文本中的所有空格和换行符,但如果空格是在 " "中就忽略,如下面:

原文本:你好       谢谢你的帮助, "真   心     的感谢 "       ,再次感谢!

替换后:
你好谢谢你的帮助, "真   心     的感谢 ",再次感谢!

------解决方案--------------------
string a = @ " 你好 谢谢你的帮助, " "真 心 的感谢 " " ,再次感谢! " "akdf awrklawe " " fas ";
a = Regex.Replace(a, @ "\s*(? <left> [^\s " "]*)(? <re> ( " "[^ " "]* " ")*)(? <right> [^\s " "]*)\s* ", "${left}${re}${right} ", RegexOptions.IgnoreCase);
MessageBox.Show( "1 " + a + "2 ");
------解决方案--------------------
string strSource = "你好 谢谢你的帮助,\ "真 心 的感谢\ " ,再次感谢! ";
string strDst = string.Empty;
Regex regExp = new Regex( "(? <=\ "[^\ "]*?) (?=[^\ "]*\ ") ",RegexOptions.Singleline);
strDst = regExp.Replace(strSource, "⊙ ");
strDst = strDst.Replace( " ", " ");
strDst = strDst.Replace( '⊙ ', ' ');