gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 19:03:45 25 4
gpt4 key购买 nike

我有一个 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$ regex 似乎是我能得到的最接近的。
它会将 401234567_ol.pdf 否定为匹配;但是,它接受 401234567_ol_something.pdf 。有人知道我如何将其否定为匹配吗?

最佳答案

您可以在正则表达式中使用负面展望。以下正则表达式将匹配任何不包含 _ol 的字符串:

^((?!_ol).)*$

DEMO

请注意,您需要使用修饰符 m (multiline) 用于多行字符串。

关于regex - 如何匹配字符串,除非它包含某些内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com