找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20923|回复: 6

[问题求助] 这个VBS正则表达式有些不能理解

[复制链接]
发表于 2012-7-6 20:06:38 | 显示全部楼层 |阅读模式
  1. option explicit
  2. dim re, s
  3. set re = new regexp
  4. re.pattern = "<(.*)>.*<\/\1>"
  5. s = "<p>xxxx xxxx xxxx</p>"
  6. if re.test(s) then
  7.         msgbox "ok"
  8. else
  9.         msgbox "ok1"
  10. end if
复制代码
关于<(.*)>.*<\/\1>这个正则式,第一次出现的<>,它以内的代码为何要加上圆括号,而不直接用<.*>

还有就是<\/\1>该怎么理解,前面能看懂,但是\1有这种用法吗?
发表于 2012-7-6 20:23:55 | 显示全部楼层
继续往后看你就会知道的,手册上都有。
 楼主| 发表于 2012-7-6 20:31:04 | 显示全部楼层
回复 2# powerbat


    兄弟,我下载的电子版,只有两百多页,和实体书相差很大。

我的这个版本里对这个正则一点都没有解释哦,麻烦兄弟说一说,万分感谢!
发表于 2012-7-6 20:31:17 | 显示全部楼层
子匹配和向后引用。
 楼主| 发表于 2012-7-6 20:50:48 | 显示全部楼层
回复 4# Demon


    兄弟 我好像模模糊糊能理解,就是同时匹配到P的意思

但具体还是不太清楚用法,能不能说详细一点?
 楼主| 发表于 2012-7-6 21:05:35 | 显示全部楼层
谢谢两位,刚才测试了一下,突然明白它的用法了

option explicit
dim re, s
set re = new regexp
re.pattern = "(\d*)-\1"
s = "123-123"
msgbox re.test(s)
发表于 2012-7-14 11:25:50 | 显示全部楼层
关于 “而不直接用<.*>” 的问题 4楼 Demon 大哥是正解,
我想楼主依然不明白,我解释下、
<(.*)>.*<\/\1>
(.*) 是捕获组,存入内存的,供以后引用的、
\1 表示引用第一个捕获组里的内容
<(.*)>(.*)<\/\1>\2
\2 就是引用第二个捕获组里的内容了、
不知道我的表达,你能不能理解、
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 10:17 , Processed in 0.018564 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表