请问,为什么提取到的都是空值呢,正则写错了吗?

dzh523 2014-03-03 01:31:29
string s = ...
<td row="1" width="33.3%" class="" style="cursor:pointer" >5510</td>
<td row="1" width="33.3%" class="" style="cursor:pointer" >1060</td>
...;

var matches = Regex.Matches(s, "(?<=.*pointer.*>).{4,5}(?=.*</td)");
String[] ss = new String[7];
int j = 0;
foreach (Match item in matches)
{
ss[j] = item.ToString().Trim(); j++;
}

提取5510等几个数字,然后打印
for (int i = 0; i < ss.Length; i++) { Trace.WriteLine(ss[i]); }

可是打印出来的全是空值,为什么啊?
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyilin888 2014-03-03
  • 打赏
  • 举报
回复
别搞的太复杂,简单才是王道 >(\d*?)<
夜轻风 2014-03-03
  • 打赏
  • 举报
回复
(?<=pointer[^>]+>)[^<]{4,5}(?=</td)
如果要匹配的数字一定是整数也可以把[^<]{4,5}换成\d{4,5}
q107770540 2014-03-03
  • 打赏
  • 举报
回复
引用 楼主 dzh523 的回复:
string s = ... <td row="1" width="33.3%" class="" style="cursor:pointer" >5510</td> <td row="1" width="33.3%" class="" style="cursor:pointer" >1060</td> ...; var matches = Regex.Matches(s, "(?<=.*pointer.*>).{4,5}(?=.*</td)");
var matches = Regex.Matches(s, "(?<=.*?pointer[^>]*?>)[^<>]{4,5}(?=</td)");
bdmh 2014-03-03
  • 打赏
  • 举报
回复
"(?<=\.\*pointer\.\*>)[\d]+(?=</td>)"

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧