文件名完全匹配的正则表达式模式
Regular Expression Pattern for Full Match of Filenames
我正在遍历图像文件名数组,如下所示:
- ConImage1 - Core.png
- ConImage211 - Core.png
- ConImage34 - Core.png
- ConImage09 - Core.png
- ConImage11 - Core.png
- ConImageOri23.png
- ConImageOri2.png
- ConImageOri11.png
- ConImageOri132.png
- ConImageForEng7 - Core.png
- ConImageForEng12 - Core.png
- ConImageForEng11 - Core.png
- ConImageForEng10 - Core.png
- ConImage1-不喜欢-Core.png
- ConImage1-赞-Core.png
- ConImage12 - 不喜欢 - Core.png
- ConImage12 - 赞 - Core.png
- ConImage34 - 不喜欢 - Core.png
- ConImage34 - 赞 - Core.png
- ConImage55 - 不喜欢 - Core.png
- ConImage55 - 赞 - Core.png
我需要一个仅匹配以下文件名的正则表达式模式:
- ConImage1 - Core.png
- ConImage211 - Core.png
- ConImage34 - Core.png
- ConImage09 - Core.png
ConImage11 - Core.png
ConImageOri23.png
- ConImageOri2.png
- ConImageOri11.png
- ConImageOri132.png
并排除包含单词的文件名:喜欢、不喜欢、ForEng 等
编辑:
我不擅长正则表达式,但尝试使用类似的方法来限制我的搜索。
^(ConImage|(Orig|!ForEng)){1}[0-9\ \-]+[\W(Dislikes|Likes)][0-9\ \-]+(Core\.png)$/i/g
或者下面的方法用于查找必要的文件,但是如果出现一些奇怪的名称,例如ConImageMaxx12 - Core.png 等,它也会拾取它。
^ConImage((?!ForEng|Dislikes|Likes).)*$
我不想实现 VBA.Filter 功能,但需要一个 Regex 解决方案。
如有任何帮助,我们将不胜感激。
没有特定的规则,很难想出正则表达式。
要匹配您发布的特定值(并排除您在评论中提到的 ConImageMaxx12
),您可以尝试:
编辑 以更正丢失的 "Start of String" 令牌
^ConImage(?:Ori)?\d+(?:(?!(?:For|Likes)).)*$
正则表达式匹配:
ConImage
- 可选择匹配
Ori
- 匹配一位或多位数字
- 然后匹配字符串的其余部分,只要它不包含负前瞻中的子字符串(这将包括
ForEng
、Likes
、Dislikes
和其他派生词)
无法说明这组规则是否足以消除不需要的文件名,因为我只是根据您所写的内容猜测一些规则。
这里是对正则表达式的更正式的解释,带有一些指向教程解释的链接:
请注意,根据您的意见,我们设置了不区分大小写的选项
匹配特定文件名
^ConImage(?:Ori)?\d+(?:(?!(?:For|Likes)).)*$
选项:不区分大小写; ^$ 匹配换行符
- Assert position at the beginning of a line
^
- Match the character string “ConImage” literally
ConImage
- Match the regular expression below
(?:Ori)?
- Match a single character that is a “digit”
\d+
- Match the regular expression below
(?:(?!(?:For|Likes)).)*
- Assert position at the end of a line
$
创建于RegexBuddy
我正在遍历图像文件名数组,如下所示:
- ConImage1 - Core.png
- ConImage211 - Core.png
- ConImage34 - Core.png
- ConImage09 - Core.png
- ConImage11 - Core.png
- ConImageOri23.png
- ConImageOri2.png
- ConImageOri11.png
- ConImageOri132.png
- ConImageForEng7 - Core.png
- ConImageForEng12 - Core.png
- ConImageForEng11 - Core.png
- ConImageForEng10 - Core.png
- ConImage1-不喜欢-Core.png
- ConImage1-赞-Core.png
- ConImage12 - 不喜欢 - Core.png
- ConImage12 - 赞 - Core.png
- ConImage34 - 不喜欢 - Core.png
- ConImage34 - 赞 - Core.png
- ConImage55 - 不喜欢 - Core.png
- ConImage55 - 赞 - Core.png
我需要一个仅匹配以下文件名的正则表达式模式:
- ConImage1 - Core.png
- ConImage211 - Core.png
- ConImage34 - Core.png
- ConImage09 - Core.png
ConImage11 - Core.png
ConImageOri23.png
- ConImageOri2.png
- ConImageOri11.png
- ConImageOri132.png
并排除包含单词的文件名:喜欢、不喜欢、ForEng 等
编辑:
我不擅长正则表达式,但尝试使用类似的方法来限制我的搜索。
^(ConImage|(Orig|!ForEng)){1}[0-9\ \-]+[\W(Dislikes|Likes)][0-9\ \-]+(Core\.png)$/i/g
或者下面的方法用于查找必要的文件,但是如果出现一些奇怪的名称,例如ConImageMaxx12 - Core.png 等,它也会拾取它。
^ConImage((?!ForEng|Dislikes|Likes).)*$
我不想实现 VBA.Filter 功能,但需要一个 Regex 解决方案。
如有任何帮助,我们将不胜感激。
没有特定的规则,很难想出正则表达式。
要匹配您发布的特定值(并排除您在评论中提到的 ConImageMaxx12
),您可以尝试:
编辑 以更正丢失的 "Start of String" 令牌
^ConImage(?:Ori)?\d+(?:(?!(?:For|Likes)).)*$
正则表达式匹配:
ConImage
- 可选择匹配
Ori
- 匹配一位或多位数字
- 然后匹配字符串的其余部分,只要它不包含负前瞻中的子字符串(这将包括
ForEng
、Likes
、Dislikes
和其他派生词)
无法说明这组规则是否足以消除不需要的文件名,因为我只是根据您所写的内容猜测一些规则。
这里是对正则表达式的更正式的解释,带有一些指向教程解释的链接:
请注意,根据您的意见,我们设置了不区分大小写的选项
匹配特定文件名
^ConImage(?:Ori)?\d+(?:(?!(?:For|Likes)).)*$
选项:不区分大小写; ^$ 匹配换行符
- Assert position at the beginning of a line
^
- Match the character string “ConImage” literally
ConImage
- Match the regular expression below
(?:Ori)?
- Match a single character that is a “digit”
\d+
- Match the regular expression below
(?:(?!(?:For|Likes)).)*
- Assert position at the end of a line
$
创建于RegexBuddy