[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]关于正则表达式的问题

本帖最后由 小爪冰凉君 于 2011-11-22 23:15 编辑

我有如下一段数据流:
“<td class=""third""><span><a href=""http://mp3.baidu.com/singerlist/%D6%DC%BD%DC%C2%D7.html"" target=""_blank"">周杰伦</a></span></td>”
其中“third”是标志位(必须检查此字符),想通过正则表达式提取其中的红字部分(包含不定字节数,其中可能有空格等符号)
我的方法是Pattern = (?=class=""third"">\S*\s\S\s.{18})\.{1,10}(?=</a></span></td>)
但是显示不对。。。。

希望达人给予帮助!

另:难道把%D6%DC%BD%DC%C2%D7翻译成汉字比较方便?有没有比较简单的做法?
1

评分人数

    • broly: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# Demon

我的测试程序是这样的:
   
  1. a = "<td class=""third""><span><a href=""http://mp3.baidu.com/singerlist/%D6%DC%BD%DC%C2%D7.html"" target=""_blank"">周杰伦</a></span></td>"
  2. Set choose = New RegExp
  3. choose.Global = true
  4. 'choose.Pattern = "(?=<td class=""third""\S*target=""_blank"">).*(?=</a></span></td>)"
  5. 'choose.Pattern = "[\u4E00-\u9FFF]*"
  6. 'choose.Pattern ="(?=class=""third"">\S*\s\S\s.{18})\S{1,10}(?=</a></span></td>)"
  7. choose.Pattern = "<td class=""third""><span><a .+?>(.+?)</a>"
  8. For Each colm In choose.Execute(a)
  9. MsgBox colm.Value
  10. next
复制代码


改成您说的代码后,运行结果并不能取得预期字符。。。
还有,“+?”这是什么意思呢?

TOP

回复 3# powerbat


    果然很好用,谢谢帮助!

TOP

回复 4# awk


    虽然看不大明白。。。但是谢谢您的帮助

TOP

回复 6# Demon


    不知道这Submatches是从哪里得到的?我参考的《VBScript程序员参考手册(第三版)》其中就没有关于Submatches的内容。。。。

TOP

回复 10# broly


    我患有一种看到英文就全身无力头晕眼花的病。。。

TOP

回复 11# powerbat


    谢谢,我把括号删掉之后已经测试成功了。

TOP

返回列表