如何匹配正则表达式中的可选字符?
我正在尝试编写一个小文件,对我们的NAS进行一些管理。
脚本遍历指定根文件夹中的文件夹。
对于我的测试,根目录为C:\Users\Solignis\Desktop\Orders
这是我第一次匹配的地方,它会检查文件是否符合我们的标准名称约定,即城市+ 3位数文件夹+ 3位数文件编号。
有时虽然我们有额外的文件,其上有_1 or _2
来表示其他页面。
如何让这个正则表达式表达式在匹配中符合“可选”_1 or _2 and sometimes _3
?
代码:
$file =~ /^ ((C[A|F|L]|ME)) (\d{3}) (\d{3}) \. (PDF) /xmi
我确信这很容易,因为我必须“钻”到我制作的这个巨大的数组哈希中,我仍然有大脑循环,就像某些数组中的25k文件一样。
非常感谢任何帮助。
由于
答案 0 :(得分:8)
像(_[1-3])?
?
匹配零个或一个实例。
可能就是你要找的东西。
答案 1 :(得分:4)
像(?: _[1-3] )?
这样的东西,如果不想抓住这个群体。