binghc 发表于 2010-9-15 10:48:20

[已解决]au3正则不能“分组”吗,正则高手帮忙(看看这个例子)

本帖最后由 binghc 于 2010-9-18 17:06 编辑

wefwelfjewf192.168.2.59sakfdljsdf
现在要匹配其中的ip地址,为什么
用 \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 可以
(\d{1,3}\.){3}\d{1,3} 这个却不行,结果显示 “2.”
为什么?

再看一例:
sdffds kitty kitty sdfjsfd
用\b(\w+)\b\s+\1\b 这语句匹配结果显示只有一个kitty
这又是为什么啊

au3的正则是不是不支持“分组”和“后向引用”?

kisyan 发表于 2010-9-15 11:54:42

等待高手出现吧

afan 发表于 2010-9-15 12:43:25

$Str = 'wefwelfjewf192.168.2.59sakfdljsdf'
$sR = StringRegExp($str, '(?:\d{1,3}\.){3}\d{1,3}', 1)
Msgbox(0, 0, $sR)

$Str = 'sdffds kitty kitty sdfjsfd'
$sR = StringRegExp($str, '\b(\w+)\b\s+\1\b', 2)
Msgbox(0, 0, $sR)

binghc 发表于 2010-9-15 13:41:05

怪了!{:face (319):}
那为什么我用“水木子“的‘正则测试工具v4.0’显示一个“kitty”,一个是“2.”

水木子看到此贴,能不能解释一下为什么会这样!
下面是图片:$Str = "wefwelfjewf192.168.2.59sakfdljsdf "
$Str2=StringRegExp($Str,"(\d{1,3}\.){3}\d{1,3}",2)

MsgBox(0,"",$Str2)

afan 发表于 2010-9-15 13:58:41

木子版版在养伤ing...
第一个应该是 (?:\d{1,3}\.){3}\d{1,3}
第二个应该用 StringRegExp 的标志 2,木子的都是3,所以如此

liufenglg 发表于 2010-9-15 15:54:05

样式不一样,结果也不一样

liufenglg 发表于 2010-9-17 10:09:51

(?: 不是不捕捉吗

binghc 发表于 2010-9-17 19:11:33

回复 7# liufenglg


    那是不捕捉匹配的内容,就是说后面不支持\1、\2之类的

karlpopper 发表于 2010-9-18 02:09:51

3是返回数组。。

afan 发表于 2010-9-18 02:11:21

回复 1# binghc


    解决了问题请及时加注“已解决”字样。
页: [1]
查看完整版本: [已解决]au3正则不能“分组”吗,正则高手帮忙(看看这个例子)