熟练使用Instr, Left, Mid这些函数,你就不用纠结写不出正则表达式了。
我写不出这个正则,我会选择用字符串处理方案。IndexOf
用正则表达式 (<.*?>)
1、自己编写语法解析逻辑;
2、使用正则表达式的组捕获;
string str = "字符串字符串<65441>字符串字符串字符串<5887>这是字符串这是字符串这是字符串<998772>字符串<55666>"; string[] s= str.Split(new char[]{'<','>'}); foreach (var item in s) { Console.WriteLine(item); }
您的是最佳答案,我选错了,不好意思啊%>_<%%>_<%
string str = "字符串字符串<65441>字符串字符串字符串<5887>这是字符串这是字符串这是字符串<998772>字符串<55666>";
string pattern=@"\<\d+\>";
MatchCollection mc = Regex.Matches(str,pattern);
var tmpArray= Regex.Split(str, pattern);
List<string> list = new List<string>();
for (int i = 0; i < tmpArray.Length; i++)
{
list.Add(tmpArray[i]);
if(mc.Count>i)
list.Add(mc[i].Value);
}
foreach (var item in list)
{
Console.WriteLine(item);
}
Console.ReadKey();
string str = "字符串字符串<65441>字符串字符串字符串<5887>这是字符串这是字符串这是字符串<998772>字符串<55666>"; List<string> str1 = new List<string>(); List<string> str2 = new List<string>(); foreach (string section in str.Split('>')){ if (section.Contains("<")) { if (!string.IsNullOrEmpty(section.Split('<')[0])) { str1.Add(section.Split('<')[0]); } if (!string.IsNullOrEmpty(section.Split('<')[1])) { str2.Add(section.Split('<')[1]); } } else if (!string.IsNullOrEmpty(section)) { str1.Add(section); } } foreach (string st1 in str1){ MessageBox.Show(st1); } foreach (string st2 in str2) { MessageBox.Show(st2); }
十分感谢