C# 正则表达式以获取行内容
我想在以下内容之间获得一行内容:直到\r\n,我尝试了以下操作:C# 正则表达式以获取行内容,c#,regex,C#,Regex,我想在以下内容之间获得一行内容:直到\r\n,我尝试了以下操作: string texto = @"From: .... blabla bla Message: blablabalab //linha em branco From: .... blabla bla Message: blablabalab //linha em Branco From: .... blabla bla Message: blablabalab";
string texto = @"From: .... blabla bla
Message: blablabalab
//linha em branco
From: .... blabla bla
Message: blablabalab
//linha em Branco
From: .... blabla bla
Message: blablabalab";
string[] lines = Regex.Split(texto, "From:\\s+\\rn");
谢谢您要查找的模式是@From:.*?\r\n。此外,您还需要使用Regex.Match而不是Regex.Split: 如果要获取所有From,也可以使用Regex.Matches:
string[] froms = Regex.Matches(s, @"From:(.*?)\r\n")
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
您要查找的模式是@From:.*?\r\n。此外,您还需要使用Regex.Match而不是Regex.Split: 如果要获取所有From,也可以使用Regex.Matches:
string[] froms = Regex.Matches(s, @"From:(.*?)\r\n")
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
您应该使用From:*$
$是以C正则表达式引擎结尾的行的默认符号
您可以从以下位置阅读有关C中正则表达式的更多信息:*$
$是以C正则表达式引擎结尾的行的默认符号
你可以阅读更多关于C中正则表达式的内容,它允许使用管道吗?我试过字符串texto=@|0140|XX|0150|TEST | TEST | 0150|TEST | TEST |;字符串[]pedacos=Regex.Matchestexto,@|0150 |。*?\r\n.Cast.Selectm=>m.Value.ToArray@user3739007管道字符在正则表达式中具有特殊含义。如果要使用它搜索角色,则需要对其进行转义。e、 它不允许使用管道吗?我试过字符串texto=@| 0140 | XX | 0150 | TEST | TEST | 0150 | TEST | TEST |;字符串[]pedacos=Regex.Matchestexto,@|0150 |。*?\r\n.Cast.Selectm=>m.Value.ToArray@user3739007管道字符在正则表达式中具有特殊含义。如果要使用它搜索角色,则需要对其进行转义。e、 g\|