【发布时间】:2015-05-27 14:57:30
【问题描述】:
我有一个 PowerShell 脚本,它将获取文件夹中所有文件的列表,然后(基于 Switch 语句中的正则表达式匹配)将每个文件移动到指定文件夹(取决于正则表达式匹配)。
我对特定列表有疑问。以“40”开头的一组文件(以其部件号命名的 PDF 文件)被移动到指定文件夹。
正则表达式本身对我来说很容易,我遇到的问题是,如果文件包含 _ol 或 _ol_,那么它不能匹配。
例如,下面的文件名应该都匹配:
401234567.pdf
401234567a.pdf
401234567_a.pdf
401234567a_something.pdf
以下内容不应匹配:
401234567_ol.pdf
401234567_ol_something.pdf
使用^(?i)40\w+[^_ol].pdf$ 正则表达式似乎是我能得到的最接近的。
它将否定401234567_ol.pdf 作为匹配项;但是,它接受401234567_ol_something.pdf。有谁知道我怎么能否定它是匹配的?
【问题讨论】:
标签: regex powershell