可选的正则表达式匹配?

ian*_*215 4 regex perl

如何匹配正则表达式中的可选字符?

我正在尝试写一个小文件,对我们的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
Run Code Online (Sandbox Code Playgroud)

我确信这很容易,我仍然有大脑循环,不得不"钻"到我制作的这个巨大的数组散列中,就像某些数组中的25k文件一样.

任何帮助将非常感激.

谢谢

jis*_*one 8

就像是 (_[1-3])?

? 匹配零个或一个实例.

可能就是你要找的东西.


gan*_*ass 5

比如(?: _[1-3] )?如果不想赶上这群人。