newuser 发表于 2011-6-15 15:25:03

[已解决]一个正则的求助?

本帖最后由 newuser 于 2011-6-16 16:55 编辑

我想匹配出执行systeminfo结果中的      
网卡:             安装了 1 个 NIC。
这部分
使用下面这个不能匹配出?
^网\w+\h*\w+[^\r]+$

不希望用这个:
网卡:\h*安装了 1 个 NIC。

3mile 发表于 2011-6-15 15:56:33

(?i).*(?:nic)

newuser 发表于 2011-6-15 16:44:13

回复 2# 3mile
谢谢,好使?
请教:如何利用(?ms)来匹配他呢?
我的思路是利用(?ms)模式 加上^ 和$做行首和行尾的匹配来完成它?可怎么试都不行!

蜘蛛抱蛋 发表于 2011-6-15 17:27:49

回复 3# newuser

au3默认就是行内模式吧,写个完整的正则看看,不然怎么知道是什么问题

newuser 发表于 2011-6-16 08:06:30

回复 4# 蜘蛛抱蛋
(?ms)^网.*C$

蜘蛛抱蛋 发表于 2011-6-16 09:19:29

回复 5# newuser


    可以啊,如果你只需要行首行尾固定值,这样做绝对可以,但是你的结尾有没有。呢?

newuser 发表于 2011-6-16 09:45:44

回复 6# 蜘蛛抱蛋

3mile 发表于 2011-6-16 10:15:48

回复 7# newuser
Multiline(多行模式):更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)

蜘蛛抱蛋 发表于 2011-6-16 10:29:46

本帖最后由 蜘蛛抱蛋 于 2011-6-16 11:43 编辑

回复 7# newuser

不知道怎么回事。。。楼主可以参考这个,正则我也没怎么搞懂
===============

从这里看,$匹配的是字串末尾

newuser 发表于 2011-6-16 16:55:22

回复newuser
Multiline(多行模式):更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在 ...
3mile 发表于 2011-6-16 10:15 http://autoitx.com/images/common/back.gif

(?ms)^网.*。(?=$)不好使?加上个垂直制表符\v就好使了?
感觉(?ms))^网.*。(?=$|\r)好理解些。

newuser 发表于 2011-6-16 16:55:34

回复 9# 蜘蛛抱蛋

谢谢!

afan 发表于 2011-6-16 17:31:23

干嘛要管结尾呢?(?m)^网\V+

newuser 发表于 2011-6-17 07:52:22

回复 12# afan
退一步海阔天空,也许是太看中(?ms)下的$行尾^行首的理解了,不过为什么老大和3mile都用\V呢?难道\V也是用来和行尾匹配的意思?他不是"垂直水平符"的意思吗?
另外,老大的正则测试工具中没有\v的注释,能加上吗?

afan 发表于 2011-6-17 20:45:57

回复 13# newuser


    注释在工具的帮助里面不是有吗? \V 和 \v 的意义是完全相反的。

newuser 发表于 2011-6-20 09:29:46

回复 14# afan
页: [1] 2
查看完整版本: [已解决]一个正则的求助?