当前位置: 代码迷 >> ASP.NET >> C#截取字符串中始末
  详细解决方案

C#截取字符串中始末

热度:3676   发布时间:2013-02-25 00:00:00.0
C#截取字符串中首尾
正在做一个标签替换的功能,情况有点复杂。

[Fsx.List:TabelName=admin,IsPage=true,ShowPageNum=true] 说明:(里面属性个数不确定)

 内容...

[/Fsx.List]

有两个问题:

一、请问怎么截取[Fsx.List...][/Fsx.List]之间的内容,条件是[Fsx.List...]中的属性个数不确定,有时多有时少;

二、页面中可出现一个或多个[Fsx.List:][/Fsx.List]标签该如何循环截取[Fsx.List...][/Fsx.List]之间的内容(也就是问题一,有多个[Fsx.List:][/Fsx.List]时怎么截取之间的内容)。谢谢!


------解决方案--------------------------------------------------------
1. 正则:
 str=Regex.Match(yourstr,"(?is)\[Fsx\.List.*?\](.*?)\[/Fsx\.List\]").Groups[1].Value;
2.
foreach(Match m in Regex.Matches(yourstr,"(?is)\[Fsx\.List.*?\](.*?)\[/Fsx\.List\]"))
{
//m.Gropus[1].Value就是你想要的
}
------解决方案--------------------------------------------------------
1、用正则能够给解决你的问题
(?is)(?<=\[Fsx\.List:[^[]*?\]).*?(?=\[/Fsx\.List\])
C# code
string str= @"[Fsx.List:TabelName=admin,IsPage=true,ShowPageNum=true] 说明:(里面属性个数不确定) 内容...[/Fsx.List]";string pattern=@"(?is)(?<=\[Fsx\.List:[^[]*?\]).*?(?=\[/Fsx\.List\])";str=Regex.Match(str,pattern).Value;
------解决方案--------------------------------------------------------
[/Fsx.List]";
string pattern=@"(?is)(?<=\[Fsx\.List:[^[]*?\]).*?(?=\[/Fsx\.List\])";
str=Regex.Match(str,pattern).Value;
  相关解决方案