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

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

  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有这种用法吗?

继续往后看你就会知道的,手册上都有。

TOP

回复 2# powerbat


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

我的这个版本里对这个正则一点都没有解释哦,麻烦兄弟说一说,万分感谢!

TOP

子匹配和向后引用。

TOP

回复 4# Demon


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

但具体还是不太清楚用法,能不能说详细一点?

TOP

谢谢两位,刚才测试了一下,突然明白它的用法了

option explicit
dim re, s
set re = new regexp
re.pattern = "(\d*)-\1"
s = "123-123"
msgbox re.test(s)

TOP

关于 “而不直接用<.*>” 的问题 4楼 Demon 大哥是正解,
我想楼主依然不明白,我解释下、
<(.*)>.*<\/\1>
(.*) 是捕获组,存入内存的,供以后引用的、
\1 表示引用第一个捕获组里的内容
<(.*)>(.*)<\/\1>\2
\2 就是引用第二个捕获组里的内容了、
不知道我的表达,你能不能理解、

TOP

返回列表