string test = "tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&"; Regex reg = new Regex(@"&q=[^&]+&"); Match m = reg.Match(test); if (m.Success) { richTextBox2.Text = m.Value; }
Regex reg = new Regex(@"&q=([^&])+&"); foreach (Match m in reg.Matches(@"tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&")) { Console.WriteLine(m.Value); //&q=%B5%D8%B7%BD& }
谢谢!但是还不是我要的
如果要求&q 必须在前面呢,该怎么写?tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&我想要的是在上面的字符串中把红色的部分用正则表达式匹配出来
Regex reg = new Regex(@"&q=[^&]+&");
Match m = reg.Match(test);
if (m.Success)
{
richTextBox2.Text = m.Value;
}
Regex reg = new Regex(@"&q=([^&])+&"); foreach (Match m in reg.Matches(@"tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&"))
{
Console.WriteLine(m.Value); //&q=%B5%D8%B7%BD&
}
你4楼的
tn=sty&rn=10&pn=5&s=0&pid=develop&f=0&h=1&q=%B5%D8%B7%BD&pids=&
和一开始的不同了。
&q=(%[A-F0-9]{2})*&
可以的
或是
q=(%[A-F0-9]{2})*q=后面是unicode的话,应该是十六进制的。