例如一个字符串
string str="21335234324ab21321345cd92798374992ab98320480238409cd908234";找出"ab"与"cd"之间的字符串结果“ab21321345cd”和 “ab98320480238409cd”
string str="21335234324ab21321345cd92798374992ab98320480238409cd908234";找出"ab"与"cd"之间的字符串结果“ab21321345cd”和 “ab98320480238409cd”
第二,用KMP算法,找到ab和cd的位置,然后SubString
public string Substring(int startIndex, int length);用string的IndexOf找出ab和cd的位置,然Substring
string str = "21335234324ab21321345cd92798374992ab98320480238409cd908234";
foreach (Match m in Regex.Matches(str, @"ab.+?cd"))
Console.WriteLine(m.Value);
法二,
21335234324ab21321345cd92798374992ab98320480238409cd908234 查找第一个ab位置,截取右边所有字符为21321345cd92798374992ab98320480238409cd908234,再查找cd位置,截取左边的,,重复上面的方法,直到找不cd,。。cd左边就是你要的数据了
List<string> ls = new List<string>();
foreach (Match m in Regex.Matches(str, @"ab.+?cd"))
{
ls.Add(m.Value);
}
ls里是你要的数据
string str = "32329929<?xml><root>342324</root>2324324<?xml><root>awewesa</root>234234saassa";
就是要找到"<?xml><root>342324</root>"
和"<?xml><root>awewesa</root>"
正则貌似问题好多!!
string str = "32329929<?xml><root>342324</root>2324324<?xml><root>awewesa</root>234234saassa";
Regex reg = new Regex(@"(?<=<root[^>]*?>)(?:(?!</?root).)*");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
/*
342324
awewesa
*/
和"<?xml><root>awewesa</root>"
string str = "32329929<?xml><root>342324</root>2324324<?xml><root>awewesa</root>234234saassa";
Regex reg = new Regex(@"<\?xml[^>]*?>.*?</root>");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);