[已解决]正则替换的问题:其中的\0\1\2什么意思?
本帖最后由 newuser 于 2011-1-13 08:19 编辑如图. 已经捕获组的0基索引。我是这样理解的。 回复 2# 3mile
捕获组的0基索引?能提供这方面的资料吗?我最近也看了不少正则资料,当然只是1遍,领悟的还很不够,我只看到了未命名组(exp)和自定义组(?<group>exp)的内容,但他们的组号是从1开始的啊!那对于他们的反向引用也是用 \1\2 表示,而资料说\0是代表整个正则表达式模式所匹配的内容,不知道我的理解是否正确?
对于我的楼上的问题:
\d{3}没有被()括起来,他们有自动被分配的组号吗? 反向引用的组号,有“()”则按每对“()”从1开始分配组。
如果没有一对“()”则没有组分配,默认用 \0 表示整个表达式的匹配内容,此时\1、\2之类均无意义。1#的例子就是如此,起作用的只有\0。
如果有一个及一个以上的组,\0=\1 本帖最后由 newuser 于 2011-1-12 10:59 编辑
反向引用的组号,有“()”则按每对“()”从1开始分配组。
如果没有一对“()”则没有组分配,默认用 \0 表示 ...
afan 发表于 2011-1-12 10:14 http://autoitx.com/images/common/back.gif
假设有:foo\(([^,]*),([^,]*),([^)]*)\)
则 \1 \2 \3 与上一一对应,因使用了(),所以不存在\0 ?有点乱,此时的 \0=\1 ?该怎么理解. 额 这是用在替换里的么?$1 == \1? 回复 6# sxd
就我这个问题,替换用 [\0]就可以了,只不过象上面的问题,还不理解? 我这就两张图,每张图做比较:
阿斯打扫打扫打扫的撒旦
页:
[1]