itestit 发表于 2011-8-23 09:15:18

【已解决】关于正则 - 请问这类的数据应该如何用正则0001/0001-001.jpg

本帖最后由 itestit 于 2011-8-23 12:34 编辑

请问这个类型数据应该如何写正则 (我用StringRegExp,返回匹配结果数组)
0001/0001-01.doc
0001/0001-02.doc
......
0001/0001-99.doc
0002/0002-01.doc
0002/0002-02.doc
......
0002/0002-99.doc
......

用({1,4})/({1,4})-({1,4}).doc 这样的格式经测试并不能实现获取 获取到的StringRegExp返回却是
0001/0001
0001/01

kevinch 发表于 2011-8-23 11:52:49

(\d+)\/\1\-\d+\.doc
这个试下

itestit 发表于 2011-8-23 12:28:02

本帖最后由 itestit 于 2011-8-23 12:32 编辑

(\d+)\/\1\-\d+\.doc
这个试下
kevinch 发表于 2011-8-23 11:52 http://autoitx.com/images/common/back.gif

谢谢kevinch,但用此正则返回的前三个都是
0001
0001
0001

如果用({1,4})/({1,4})\-({1,4})则返回的是
0001
0001
001

StringRegExp他把匹配的结果拆分了
正常应该是0001/0001-001.doc

www378660084 发表于 2011-8-23 12:31:50

把没用的括号去掉就好了

#include<Array.au3>
$str = "0001/0001-99.doc 0002/0002-01.doc 0002/0002-02.doc"
$test = StringRegExp($str,"{1,4}/{1,4}-{1,4}.doc",3)
_ArrayDisplay($test)

itestit 发表于 2011-8-23 12:34:12

把没用的括号去掉就好了
www378660084 发表于 2011-8-23 12:31 http://autoitx.com/images/common/back.gif


    感谢!www378660084 兄的正则实现了全部需求谢谢!

kevinch 发表于 2011-8-23 16:39:05

#include<Array.au3>
$str = "0001/0001-99.doc 0002/0002-01.doc 0002/0002-02.doc"
$test = StringRegExp($str,"\d+\/\d+\-\d+\.doc",3)
_ArrayDisplay($test)我也无法理解为何\1会出现这样的情况,au3的正则一直用起来怪怪的。
页: [1]
查看完整版本: 【已解决】关于正则 - 请问这类的数据应该如何用正则0001/0001-001.jpg