windows路径的正则表达式

Ram*_*mya 6 java regex

作为强化修复的一部分,我们需要验证文件路径。例如,

  1. "C:/Users/<username>/sample1.txt"
  2. "C:\Users\<username>\sample1.txt"

我们尝试使用下面的正则表达式来验证上述路径,但当文件路径包含\. 因此,请建议有效的正则表达式,它可以接受文件路径中的两个斜杠。

Validator.FilePath=.*[\\]\\[!"#$%&'()_*+,/:;<=>?@\\^`{|}~].*
Run Code Online (Sandbox Code Playgroud)

dry*_*hip 7

你可以试试:

[a-zA-Z]:[\\\/](?:[a-zA-Z0-9]+[\\\/])*([a-zA-Z0-9]+\.txt)
Run Code Online (Sandbox Code Playgroud)
  • [a-zA-Z]:用于驱动器盘符和:
  • [\\\/]匹配\/
  • (?:[a-zA-Z0-9]+[\\\/])*用于文件夹名称。您可以在字符类中添加您可能需要的任何字符。我只用过a-zA-Z0-9.
  • ([a-zA-Z0-9]+\.txt)用于文件名和.txt扩展名 - 它匹配文件名和扩展名,并捕获它。


Net*_*ert 5

FWIW,这是我多年来用来验证任何有效的 Windows 路径+文件的模式:

^
  (?<drive>[a-z]:)?
  (?<path>(?:[\\]?(?:[\w !#()-]+|[.]{1,2})+)*[\\])?
  (?<filename>(?:[.]?[\w !#()-]+)+)?[.]?
$
Run Code Online (Sandbox Code Playgroud)

它容纳存在或不存在的驱动器号、可选的根标记、相对路径(“.”和“..”)以及文件和文件夹名称中的句点。它还使得通过捕获组标签提取信息变得简单/容易。唯一需要注意的是,它需要对它通过的路径名中的双句点进行二次检查。

正则表达式 101 示例


Ven*_*kat -1

Validator.FilePath=(?:[a-zA-Z]\\:|[\\\\\\\\|/]+[\\w\\.]+)[\\\\|/]?([\\w]+[\\\\|/])*[\\w]*(\\.\\w+)$
Run Code Online (Sandbox Code Playgroud)