当前位置:编程学习 > C#/ASP.NET >>

正则匹配的问题.一换行就匹配不到了.奇怪

 string str2 = @"{{(.*?)/}}";

 {{News(10,3,20,p)}}
<a href="<#ClassUrl#>" style="color:blue;">[<#ClassName#>]</a> <a href="<#NewsUrl#>"><#Title#></a>
{{News/}}

我一把<a href....换个行就匹配不到了.怎么回了.

换成

 {{News(10,3,20,p)}}<a href="<#ClassUrl#>" style="color:blue;">[<#ClassName#>]</a> <a href="<#NewsUrl#>"><#Title#></a>{{News/}} 这样就可以.天哪.这是怎么回事.
--------------------编程问答-------------------- 每天回帖即可获得10分可用分 --------------------编程问答-------------------- str2是你的全部正则?

小数点不能匹配换行符,用[\s\S]代替小数点,匹配任意一个字符 --------------------编程问答-------------------- 谢谢.
string str2 = @"{{([\s\S]*?)/}}"; 吗

我试了.还是不行.正则我接触不久.不太熟悉.请指教. --------------------编程问答-------------------- 你想匹配以下全部吗?

{{News(10,3,20,p)}} 
<a href=" <#ClassUrl#>" style="color:blue;">[ <#ClassName#>] </a> <a href=" <#NewsUrl#>"> <#Title#> </a> 
{{News/}} 

规律是什么样的,哪里固定的,哪里是变化的 --------------------编程问答-------------------- [\n\s\S]* --------------------编程问答-------------------- try...

Regex reg = new Regex(@"(?is)\{\{(\w+)(?:(?!\}\}).)*\}\}(?:(?!\{\{|\}\}).)*\{\{\1/\}\}");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
    richTextBox2.Text += m.Value + "\n";
}
--------------------编程问答--------------------
引用 5 楼 wuyq11 的回复:
[\n\s\S]*


谢谢.但不行. --------------------编程问答--------------------
引用 4 楼 lxcnn 的回复:
你想匹配以下全部吗?

{{News(10,3,20,p)}}
<a href=" <#ClassUrl#>" style="color:blue;">[ <#ClassName#>] </a> <a href=" <#NewsUrl#>"> <#Title#> </a>
{{News/}}

规律是什么样的,哪里固定的,哪里是变化的


您好.{{News(10,3,20,p)}}这个是标签头.括号内的是参数.{{News/}}这个是标签尾.从 <a></a>里面的内容是模板内容.是变化的. --------------------编程问答-------------------- 6楼代码不能满足你的要求吗?

如果News是固定的,根据这个来取,那试下下面的代码
Regex reg = new Regex(@"(?is)\{\{News(?:(?!\}\}).)*\}\}(?:(?!\{\{|\}\}).)*\{\{News/\}\}");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
    richTextBox2.Text += m.Value + "\n";
}


如果还不满足要求,说下哪里不满足要求
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,