找回密码
 加入
搜索
查看: 4679|回复: 8

[效率算法] regexp匹配顺序。。。[无解]

  [复制链接]
发表于 2011-5-1 18:17:28 | 显示全部楼层 |阅读模式
本帖最后由 蜘蛛抱蛋 于 2011-5-1 22:37 编辑

随便一个超过两个捕获组的表达式,能不能用纯正则决定输出的数组子项排列顺序?
比如
(?:\d+\.)?([^-]+)\s*\-\s*(.*?)\.\w+$
匹配
01.aaa-bbbb.ccc
02.ddd-ffff.ggg
03.ddd-ffff.ggg
          ...
结果中索引0可不可以是bbbb? 注意是纯正则,不借助变量
用正则本来就偷懒了,可我想更懒一些
发表于 2011-5-1 18:23:05 | 显示全部楼层
结果的顺序应该是固定按括号的顺序来排列的吧.
你要偷懒的话,在使用的时候先用$Array[1].再用$Array[0]不也一样吗?
发表于 2011-5-1 18:25:38 | 显示全部楼层
正则只管结构不管顺序吧
发表于 2011-5-1 20:07:27 | 显示全部楼层
回复 3# netegg
基于结构的,数组是按出现顺序排列的,根本没有索引,纯正则在模糊匹配的时候是不能排序的,如果非要排序就要知道具体文件来写特定的正则,只是这样的话还不如借助其他命令排序来的快
发表于 2011-5-1 20:29:59 | 显示全部楼层
回复 4# love5173
我觉得好像也是
 楼主| 发表于 2011-5-1 22:37:11 | 显示全部楼层
回复 5# netegg


    我也这么觉得 嘿嘿
发表于 2011-5-2 00:09:58 | 显示全部楼层
不大理解楼主的意思,请解释
发表于 2011-5-2 04:19:36 | 显示全部楼层
本帖最后由 netegg 于 2011-5-2 04:21 编辑

回复 7# 3mile
用正则匹配的结果比如是bbbbb,aaaaa,ccccc可不可以输出成aaaaa,bbbbb,ccccc
对了,不用其他操作,只用正则匹配出最后的结果
发表于 2011-5-2 12:07:45 | 显示全部楼层
vbs正则可以用submatches来提取某个组的匹配结果,在au3里也可以创建该项目并调用这个功能。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-1 06:56 , Processed in 0.086849 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表