Hay这个regualr表达式适用于Full Windows Folder Path
^([A-Za-z]:|\\{2}([-\w]+|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\\(([^"*/:?|<>\\,;[\]+=.\x00-\x20]|\.[.\x20]*[^"*/:?|<>\\,;[\]+=.\x00-\x20])([^"*/:?|<>\\,;[\]+=\x00-\x1F]*[^"*/:?|<>\\,;[\]+=\x00-\x20])?))\\([^"*/:?|<>\\.\x00-\x20]([^"*/:?|<>\\\x00-\x1F]*[^"*/:?|<>\\.\x00-\x20])?\\)*$
Run Code Online (Sandbox Code Playgroud)
火柴
d:\,\\Dpk\T c\,E:\reference\h101\,\\be\projects$\Wield\Rff\,\\70.60.44.88\T d\SPC2\
非匹配
j:ohn\,\\Dpk\,G:\GD,\\cae\.. ..\,\\70.60.44\T d\SPC2\
问题:这种表达需要" \"结束路径.如何编辑此表达式,以便用户可以输入路径
C:\Folder1, C:\Folder 1\Sub Folder
有两种方法可以解决这个问题:
第二种方法意味着您只需检查输入字符串是否以\.如果它没有,那么只需添加它,然后让正则表达式魔术.
我通常不会推荐这种无知的替代品,但这可能是一个例外.
以下是我"解决"这个问题的方法:
也就是说,我们当然可以试着看看正则表达式.这是相同的模式,但在自由间距/注释模式下重新格式化,即(?x)在例如Java中.
^
( [A-Za-z]:
| \\{2} ( [-\w]+
| (
(25[0-5]
|2[0-4][0-9]
|[01]?[0-9][0-9]?
)\.
){3}
(25[0-5]
|2[0-4][0-9]
|[01]?[0-9][0-9]?
)
)
\\ (
( [^"*/:?|<>\\,;[\]+=.\x00-\x20]
| \.[.\x20]* [^"*/:?|<>\\,;[\]+=.\x00-\x20]
)
( [^"*/:?|<>\\,;[\]+=\x00-\x1F]*
[^"*/:?|<>\\,;[\]+=\x00-\x20]
)?
)
)
\\ (
[^"*/:?|<>\\.\x00-\x20]
(
[^"*/:?|<>\\\x00-\x1F]*
[^"*/:?|<>\\.\x00-\x20]
)?
\\
)*
$
Run Code Online (Sandbox Code Playgroud)
该模式的主要骨架如下:
^
(head)
\\ (
bodypart
\\
)*
$
Run Code Online (Sandbox Code Playgroud)
基于这个更高级别的视图,看起来\可以通过添加以下?两个部分来支持可选的尾随:\\(head)
^
(head)
\\?(
bodypart
\\?
)*
$
Run Code Online (Sandbox Code Playgroud)
你通常应该非常警惕嵌套重复修饰符(在这种情况下是一个?内部*),但对于这个特定的模式,它是"好的",因为bodypart它不匹配\.
| 归档时间: |
|
| 查看次数: |
2745 次 |
| 最近记录: |