regex - 根据驱动器号匹配扩展文件的正则表达式
问题描述
我有这个可以检测特定扩展文件的正则表达式,
([a-zA-Z0-9\s_\\.\-\(\):])+(.cmd|.exe|.bat)$
但我想更改它,使其永远不会应用于 c:\ ,目标是仅在辅助或外部驱动器上检测这些扩展文件
例子
D:\test.bat match
c:\test.bat does not match
谢谢
解决方案
假设根据您在模式中包含的每条路径都位于单独的行中,您可以在此基础上构建一个非常简单的解决方案:$
^[^cC].*(cmd|exe|bat)$
解释:
^
匹配一行的开头。[^cC]
匹配除c
or之外的所有内容C
。.*
匹配除行终止符之外的任何字符,零次或多次。(cmd|exe|bat)
匹配您的扩展名。由于点在前一行中已匹配,因此无需再次匹配。$
匹配行尾。
TL;DR:你忘了匹配你的行的开头。
推荐阅读
- html - (ASP.NET) 我怎么知道某个特定的菜单项被悬停在上面?
- git - 当前分支不跟踪远程分支
- python - 使用 Tensorflow.io.gfile 在 Google Cloud Storage 中存储泡菜对象
- c# - ASP.NET Core Web API 检查 if-modified-since 标头不起作用,因为浏览器甚至没有提交到服务器
- c# - 引用字符串和双引号字符串替换
- function - Android Studio 的文件格式不正确
- r - 使用 git 从校对者那里获得反馈
- node.js - 如何列出公共亚马逊 ecr 存储库中可用的图像?
- scala - 给定一个键名以大写字母开头的 Json 对象,如何“读入”Scala Case Class
- django - Django:如何获取具有文件名的对象