作为强化修复的一部分,我们需要验证文件路径。例如,
"C:/Users/<username>/sample1.txt""C:\Users\<username>\sample1.txt"我们尝试使用下面的正则表达式来验证上述路径,但当文件路径包含\. 因此,请建议有效的正则表达式,它可以接受文件路径中的两个斜杠。
Validator.FilePath=.*[\\]\\[!"#$%&'()_*+,/:;<=>?@\\^`{|}~].*
Run Code Online (Sandbox Code Playgroud)
你可以试试:
[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扩展名 - 它匹配文件名和扩展名,并捕获它。FWIW,这是我多年来用来验证任何有效的 Windows 路径+文件的模式:
^
(?<drive>[a-z]:)?
(?<path>(?:[\\]?(?:[\w !#()-]+|[.]{1,2})+)*[\\])?
(?<filename>(?:[.]?[\w !#()-]+)+)?[.]?
$
Run Code Online (Sandbox Code Playgroud)
它容纳存在或不存在的驱动器号、可选的根标记、相对路径(“.”和“..”)以及文件和文件夹名称中的句点。它还使得通过捕获组标签提取信息变得简单/容易。唯一需要注意的是,它需要对它通过的路径名中的双句点进行二次检查。
Ven*_*kat -1
Validator.FilePath=(?:[a-zA-Z]\\:|[\\\\\\\\|/]+[\\w\\.]+)[\\\\|/]?([\\w]+[\\\\|/])*[\\w]*(\\.\\w+)$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16956 次 |
| 最近记录: |