regex - 可选的正则表达式匹配?

标签 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

我确信这很简单,我仍然需要“钻取”到我制作的这个巨大的数组散列中,这在某些数组中类似于 25k 文件,因此我仍然在大脑上循环。

任何帮助将非常感激。

谢谢

最佳答案

类似 (_[1-3])??匹配零个或一个实例。

可能是你正在寻找的。

关于regex - 可选的正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5972526/

相关文章:

javascript - 使用正则表达式匹配 8 或 9 位数字

javascript - 搜索嵌入的电子邮件和电话号码

perl - 为什么我不能在 Perl 的菱形运算符中使用 typeglob?

regex - 在 Perl 中覆盖区分大小写的正则表达式

php - preg_replace() 仅字符串的特定部分

c - 在C中实现通配符匹配的思路

java - 提取所有出现的模式K,并在一遍检查字符串是否匹配 "K*"

regex - 如何使用 perl 在正则表达式中包含变量作为模式匹配的一部分

perl - vim 的正确 perl 路径

regex - 在 Perl 中是否有比正则表达式更好的数据验证方法?