标题: [问题求助] 这个VBS正则表达式有些不能理解 [打印本页]
作者: poter 时间: 2012-7-6 20:06 标题: 这个VBS正则表达式有些不能理解
- option explicit
- dim re, s
- set re = new regexp
- re.pattern = "<(.*)>.*<\/\1>"
- s = "<p>xxxx xxxx xxxx</p>"
- if re.test(s) then
- msgbox "ok"
- else
- msgbox "ok1"
- end if
复制代码
关于<(.*)>.*<\/\1>这个正则式,第一次出现的<>,它以内的代码为何要加上圆括号,而不直接用<.*>
还有就是<\/\1>该怎么理解,前面能看懂,但是\1有这种用法吗?
作者: powerbat 时间: 2012-7-6 20:23
继续往后看你就会知道的,手册上都有。
作者: poter 时间: 2012-7-6 20:31
回复 2# powerbat
兄弟,我下载的电子版,只有两百多页,和实体书相差很大。
我的这个版本里对这个正则一点都没有解释哦,麻烦兄弟说一说,万分感谢!
作者: Demon 时间: 2012-7-6 20:31
子匹配和向后引用。
作者: poter 时间: 2012-7-6 20:50
回复 4# Demon
兄弟 我好像模模糊糊能理解,就是同时匹配到P的意思
但具体还是不太清楚用法,能不能说详细一点?
作者: poter 时间: 2012-7-6 21:05
谢谢两位,刚才测试了一下,突然明白它的用法了
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
关于 “而不直接用<.*>” 的问题 4楼 Demon 大哥是正解,
我想楼主依然不明白,我解释下、
<(.*)>.*<\/\1>
(.*) 是捕获组,存入内存的,供以后引用的、
\1 表示引用第一个捕获组里的内容
<(.*)>(.*)<\/\1>\2
\2 就是引用第二个捕获组里的内容了、
不知道我的表达,你能不能理解、
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |