蜘蛛抱蛋 发表于 2011-5-1 18:17:28

regexp匹配顺序。。。[无解]

本帖最后由 蜘蛛抱蛋 于 2011-5-1 22:37 编辑

随便一个超过两个捕获组的表达式,能不能用纯正则决定输出的数组子项排列顺序?
比如
用(?:\d+\.)?([^-]+)\s*\-\s*(.*?)\.\w+$匹配01.aaa-bbbb.ccc
02.ddd-ffff.ggg
03.ddd-ffff.ggg
          ...结果中索引0可不可以是bbbb? 注意是纯正则,不借助变量
用正则本来就偷懒了,可我想更懒一些{:face (396):}

easefull 发表于 2011-5-1 18:23:05

结果的顺序应该是固定按括号的顺序来排列的吧.
你要偷懒的话,在使用的时候先用$Array.再用$Array不也一样吗?

netegg 发表于 2011-5-1 18:25:38

正则只管结构不管顺序吧

love5173 发表于 2011-5-1 20:07:27

回复 3# netegg
基于结构的,数组是按出现顺序排列的,根本没有索引,纯正则在模糊匹配的时候是不能排序的,如果非要排序就要知道具体文件来写特定的正则,只是这样的话还不如借助其他命令排序来的快

netegg 发表于 2011-5-1 20:29:59

回复 4# love5173
我觉得好像也是

蜘蛛抱蛋 发表于 2011-5-1 22:37:11

回复 5# netegg


    我也这么觉得 嘿嘿

3mile 发表于 2011-5-2 00:09:58

不大理解楼主的意思,请解释

netegg 发表于 2011-5-2 04:19:36

本帖最后由 netegg 于 2011-5-2 04:21 编辑

回复 7# 3mile
用正则匹配的结果比如是bbbbb,aaaaa,ccccc可不可以输出成aaaaa,bbbbb,ccccc
对了,不用其他操作,只用正则匹配出最后的结果

kevinch 发表于 2011-5-2 12:07:45

vbs正则可以用submatches来提取某个组的匹配结果,在au3里也可以创建该项目并调用这个功能。
页: [1]
查看完整版本: regexp匹配顺序。。。[无解]