查找包含空格的文件路径

时间:2016-02-27 16:21:00

标签: regex

我正在尝试创建一个正则表达式来选择包含空格的文件路径,而不是用引号括起来。另外,我只想要以卷号开头的路径(例如,C:\,D:\,E :),我想忽略路径之后的任何开关或命令。

以下面的列表为例,我用粗体突出显示了我要匹配的所有文本并返回:

<小时/> C:\此路径有空格\ system.sys -switch /命令

C:\ Thispathhasnospaces \文件名.exe

\ Sytem32文件\ ThisDidNotBeginWithADriveLetter \ something.doc

D:\此路径还有空格\ something.xlsx

“C:\我不在乎它是否用引号\ something.abc包裹”-switch

到目前为止,我提出的是:

^\w:\(.+)(.\w\w\w)

哪种工作,但它选择带有空格和没有空格的路径。如果路径为四个字符的扩展名,例如.xlsx

,它也不会选择完整的文件名

非常感谢任何帮助。如果你发布了一个更好的正则表达式,如果你添加了一些解释,那将非常有用,因为我正在努力学习它。

谢谢!

2 个答案:

答案 0 :(得分:3)

我会去

^[A-Z]:\\.+\s.+\.\S+
  • ^是字符串开头的锚点
  • [A-Z]:\\匹配后跟冒号和反斜杠的字母
  • .+匹配任何字符,1次或多次
  • \s匹配单个空格
  • .+\.\S+匹配后跟点和非空格的任何字符

请参阅https://regex101.com/r/fC5tF8/2了解演示

答案 1 :(得分:0)

我会使用的正则表达式是

^\w:[^\s]+[\.]*[^\s]+

这将找到任何以字母数字开头并且不包含空格的内容。