小编Los*_*ost的帖子

除非它包含某些内容,如何匹配字符串?

我有一个PowerShell脚本,它将获取文件夹中所有文件的列表,然后(基于Switch语句中的正则表达式匹配)将每个文件移动到指定的文件夹(取决于正则表达式匹配).

我遇到了特定列表的问题.以"40"开头的一组文件(以其部件号命名的PDF文件)将移动到指定的文件夹.

这个正则表达式本身对我来说很容易,我遇到的问题是,如果文件包含 _ol OR _ol_则它不能匹配.

例如,下面的文件名应该全部匹配:

401234567.pdf
401234567a.pdf
401234567_a.pdf
401234567a_something.pdf
Run Code Online (Sandbox Code Playgroud)

以下内容不应匹配:

401234567_ol.pdf
401234567_ol_something.pdf
Run Code Online (Sandbox Code Playgroud)

使用^(?i)40\w+[^_ol].pdf$正则表达式是我能得到的最接近的.它将否定401234567_ol.pdf作为一个匹配; 但是,它接受了401234567_ol_something.pdf.有谁知道我怎么能否认这也是一场比赛?

regex powershell

5
推荐指数
1
解决办法
677
查看次数

标签 统计

powershell ×1

regex ×1