public void testRegex06() { string yourStr = @"window.baidu.sug({q:""qq"",p:true,s:[""qq空间"",""qq个性签名"",""qq2010正式版下载"",""qq牧场全能助手"",""qq网名"",""qq头像"",""qq邮箱"",""qq空间克隆"",""qq农场外挂"",""qq表情""]});"; Match m = Regex.Match(yourStr, @"(?<=s:\[)[^\[\]]+(?=\])"); if (m.Success) { MatchCollection mc = Regex.Matches(m.Value, @"(?<m>"")(?<data>[^""]+)(?<-m>"")"); foreach (Match mi in mc) { MessageBox.Show(mi.Groups["data"].Value); } } }
public void testRegex06()
{
string yourStr = @"window.baidu.sug({q:""qq"",p:true,s:[""qq空间"",""qq个性签名"",""qq2010正式版下载"",""qq牧场全能助手"",""qq网名"",""qq头像"",""qq邮箱"",""qq空间克隆"",""qq农场外挂"",""qq表情""]});";
Match m = Regex.Match(yourStr, @"(?<=s:\[)[^\[\]]+(?=\])");
if (m.Success)
{
MatchCollection mc = Regex.Matches(m.Value, @"(?<m>"")(?<data>[^""]+)(?<-m>"")");
foreach (Match mi in mc)
{
MessageBox.Show(mi.Groups["data"].Value);
}
}
}
http://deerchao.net/tutorials/regex/regex.htmhttp://www.regexlab.com/zh/regref.htm
但是我觉得用正则提取需要的内容比较合适。(?<=(\[")|(,"))\S+?(?=")这种正则的确理解不了(?<m>"")(?<data>[^""]+)(?<-m>"")这个基本上之道是什么意思
这个你都看的懂……
那你正则了解的蛮深入了,自己搞的定才对了。平衡组,是我的软肋。(?<=(\[")|(,"))\S+?(?=")
意思是:
[ 或者 ," 开头的
\S表示非符号的部分,可以用\w表示
+?非贪婪模式匹配,尽量配合后面表达式成立
(?=")表示"结尾
你就懂了
深入的学习要看客客的blog
(?=exp) 匹配exp前面的位置
(?=exp) 匹配exp前面的位置
有点头绪了,现在在看楼上给的教程。我就是 (?<=exp) 和 (?=exp) 有点没弄明白。