110,534
社区成员
发帖
与我相关
我的任务
分享
private static void TestRegex03()
{
string yourStr = @"goop <古>信笺上方的(印刷)文字,印有抬头[律]的信笺,文盲的
striped-pants 过于注重形式的,刻板的,礼貌上的
a beam in 's own eye 某人自身的大缺点
a beaten track 踏出的路,常规,惯例
gosport 戈斯波特[英国英格兰南部港市]; (飞机座舱间的)通话软管
";
StringBuilder builder = new StringBuilder();
string result = Regex.Replace(yourStr, @"(?im)^([a-z'\- ]+)\s*(?:(?:[,.?!\s]|<[^>]*>)([^<>\r\n,.?!\s]+))+",
delegate(Match m)
{
builder.Remove(0, builder.Length);//清理
foreach (Capture c in m.Groups[2].Captures)
{
builder.AppendLine(m.Groups[1].Value + " " + Regex.Replace(c.Value, @"\([^()]*\)|\[[^\[\]]*\]|;", ""));
}
return builder.ToString();
});
Console.WriteLine(result);
}
goop 信笺上方的文字
goop 印有抬头的信笺
goop 文盲的
striped-pants 过于注重形式的
striped-pants 刻板的
striped-pants 礼貌上的
a beam in 's own eye 某人自身的大缺点
a beaten track 踏出的路
a beaten track 常规
a beaten track 惯例
gosport 戈斯波特
gosport 通话软管
public static void Test()
{
string yourStr = @"goop <古>信笺上方的(印刷)文字,印有抬头[律]的信笺,文盲的
pangen [生]泛子,胚芽(一种假设的原生质粒)
panglossian 过分乐观的,认为一切都趋于至善的 过分乐观者
";
StringBuilder builder = new StringBuilder();
string result = Regex.Replace(yourStr, @"(?m)^(\w+)\s*(?:(?:<[^>]*>|[,.?!\s])([^<>\r\n,.?!\s]+))+",
delegate(Match m)
{
builder.Remove(0, builder.Length);//清理
foreach (Capture c in m.Groups[2].Captures)
{
builder.AppendLine(m.Groups[1].Value + " " + Regex.Replace(c.Value,@"\([^()]*\)|\[[^\[\]]*\]",""));
}
return builder.ToString();
});
Console.WriteLine(result);
}
goop 信笺上方的文字
goop 印有抬头的信笺
goop 文盲的
pangen 泛子
pangen 胚芽
panglossian 过分乐观的
panglossian 认为一切都趋于至善的
panglossian 过分乐观者
public static void Test()
{
string yourStr = @"goop <古>信笺上方的(印刷)文字,印有抬头[律]的信笺,文盲的
pangen [生]泛子,胚芽(一种假设的原生质粒)
panglossian 过分乐观的,认为一切都趋于至善的 过分乐观者
";
StringBuilder builder = new StringBuilder();
string result = Regex.Replace(yourStr, @"(?m)^(\w+)\s*(?:(?:<[^>]*>|\([^()]*\)|\[[^[]]*\]|[,.?!\s])([^()<>\[\]\r\n,.?!]+))+",
delegate(Match m)
{
builder.Remove(0, builder.Length);//清理
foreach (Capture c in m.Groups[2].Captures)
{
builder.AppendLine(m.Groups[1].Value + " " + c.Value);
}
return builder.ToString();
});
Console.WriteLine(result);
}
public static void Main()
{
string temp = @"goop <古>信笺上方的(印刷)文字,印有抬头[律]的信笺,文盲的
pangen [生]泛子,胚芽(一种假设的原生质粒)
panglossian 过分乐观的,认为一切都趋于至善的 过分乐观者";
MatchCollection mc = Regex.Matches(temp, "^.+$",RegexOptions.Multiline);
foreach (Match m in mc)
{
string[] t = m.Value.Trim().Split(' ', ',');
Console.WriteLine(t.Length);
}
}
//不要太依赖正则 有些不用正则也是可以实现的
//比如这句的分割:
void Main()
{
string s=" panglossian 过分乐观的,认为一切都趋于至善的 过分乐观者";
string[] ss=s.Split(new char[]{' ',','},StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(ss[0] +" " +ss[1]);
Console.WriteLine(ss[0] +" " +ss[2]);
Console.WriteLine(ss[0] +" " +ss[3]);
}
/*
panglossian 过分乐观的
panglossian 认为一切都趋于至善的
panglossian 过分乐观者
*/