求一分行正则表达式:
以回车为分行符。如果回车字符出现在双引号内,不分行。
如:aaa "回车"bcdd回车,算作一行。
以回车为分行符。如果回车字符出现在双引号内,不分行。
如:aaa "回车"bcdd回车,算作一行。
解决方案 »
- 看不懂这段代码。望指点
- WebRequest C# 基础代码含义
- 怎样Response.Write输出script 显示变量值?小问题
- dateTimePicker取值查询问题
- ServicedComponent的Deactivate事件是何时触发的?
- 骰子游戏
- 参数传递问题
- 用过 DevExpress XPO 的朋友看看,郁闷好久了!
- 为什么我的 VS.NET 2003 没有 System.Management!
- 大家介绍一本C# 入门的好书, for没有任何基础的编程白痴的~
- Response.WriteFile()从服务器d盘下载文件,路径怎么写?
- namespace 'CompilerServices' does not exist in the namespace 'Microsoft.VisualBasic',在线等,谢谢
using System.Text;
using System.Collections.Generic; class Program
{
static void Main(string[] args)
{
string ss = "\nab\"1\n2\"cd\nef";
string[] t = Split(ss, '\n');
foreach (string s in t)
{
Console.WriteLine("[{0}]", s);
}
}
// 将 input 按 separator 拆分,双引号内的 separator 不算隔符
static string[] Split(string input, char separator)
{
List<string> t = new List<string>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < input.Length; i++)
{
if (input[i] == separator)
{
t.Add(sb.ToString());
sb.Length = 0;
}
else if (input[i] == '"')
{
sb.Append(input[i]);
for (i++; i < input.Length; i++)
{
sb.Append(input[i]);
if (input[i] == '"') break;
}
}
else sb.Append(input[i]);
}
t.Add(sb.ToString());
return t.ToArray();
}
}
/* 程序输出:
[]
[ab"1
2"cd]
[ef]
*/
string sPtn = @"""[^""]*""(((?'set'"")[^""]*)+((?'-set'"")[^""]*)+)*(?(set)(?!))";
Match m = Regex.Match(s, sPtn);
while (m.Success)
{
s = s.Replace(m.Value, Regex.Replace(m.Value, "\n+", ""));
m = m.NextMatch();
}
Console.WriteLine(s);
/*
aaa "cccbbb"bcdd
cccccc
aaaa
*/
using System.Text.RegularExpressions;class Program
{
static void Main(string[] args)
{
string ss = "\nab\"1\n2\"cd\nef";
foreach (Match m in Regex.Matches(ss, @"(?:""[^""]*""|.)+"))
{
Console.WriteLine("[{0}]", m);
}
}
}
/* 程序输出:
[ab"1
2"cd]
[ef]
*/
string[] str = Regex.Split(input,"$",RegexOptions.Multiline);