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;