我将一个文本文件读取到内存用(string类型),但是我要获取里面指定的多个相同字符该怎么获取,比如string s="sfd<%vfd%>fdsafd<%fdsfa%>fdfd<%fdsf%>fdfas";我现在是想获取所有<%.....%>这个标记里面的字符。如果用int start = s.indexof("<%");int end = s.indexof("%>");response.write(str.Substring(strat + 2, end - start - 2));方法,只能获取第一个标记的内容。怎么办能???
解决方案 »
- 关于.NET库中XmlDocument的Load方法异常无法捕获的情况
- 如何写实时记录的触发器
- 想做个通用的导出excel的类,是不是写几个静态函数就行了呀?
- 两个label 把label1拖到label2后,label2的Text=label1的Text, winform 很简单的一个问题。在线等。
- WinFrom GridView获取某行 第1列的值
- win2003 C#环境写的应用程序,其中到用microsoft web browser控件,为什么在XP下DocumentComplete事件不好用
- C#里面有没有和vb中的InStrRev一样功能的函数
- dim Temp() as String=Split(UploadFile.PostedFile.FileName,"\") 这样的功能用c#如何写?
- 如何远程连接一个网站的后台数据库
- 在dataGrid中,如何禁止用户自己添加新行?
- C#与ACCESS数据库的链接
- 跪求mschart的示例及相关资料文档
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(@"<%[\w\W]*?%>");
System.Text.RegularExpressions.MatchCollection mc = r.Matches(@"sfd<%vfd%>fdsafd<%fdsfa%>fdfd<%fdsf%>fdfas", 0);
if (mc != null && mc.Count > 0)
{
foreach (System.Text.RegularExpressions.Match m in mc)
{
MessageBox.Show(m.Value);
}
}
string test = @"sfd<%vfd%>fdsafd<%fdsfa%>fdfd<%fdsf%>fdfas";
MatchCollection mc = Regex.Matches(test, @"(?<=<%)((?!%>).)+");
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}
MatchCollection mc = Regex.Matches(test, @"(?s)(?<=<%)((?!%>).)+");
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}
var result = System.Text.RegularExpressions.Regex.Matches(str, @"(?<=%)\w+(?=%)")
.OfType<System.Text.RegularExpressions.Match>()
.Select(x => x.Value); foreach (var item in result) {
MessageBox.Show(item);
}