我正好在下面的字符串。使用正则表达式如何仅提取路径?
"C:\Python34\py.exe" "%1" %*
我已经尝试了以下模式:
([a-zA-Z]:[\ [a-zA-Z0-9。]] *)
它给了我整个路径
C:\Python34\py.exe
^ [^ \ t] + [\ t] +(。*)$
它给了我整个字符串
"C:\Python34\py.exe" "%1" %*
编辑
我知道System.IO命名空间中的选项。但是这里有一个字符串,我需要从中提取路径->
"C:\Python34\py.exe" "%1" %*
如我所示,包含路径的字符串可能不规则。
最佳答案
我想您可以将其概括化以找到足以区分它的方法
从其他引用的值。
这至少需要带引号的字符串中的\
和file.ext
。
"
# @"""([^""]*)\\([^""\\]+(?:\.[^"".\\]+))"""
( # (1 start), Path
[^"]*
) # (1 end)
\\
( # (2 start), File name
[^"\\]+
(?:
\.
[^".\\]+
)
) # (2 end)
"
输出:
** Grp 0 - ( pos 0 , len 22 )
"C:\Python34\py.exe.d"
** Grp 1 - ( pos 1 , len 11 )
C:\Python34
** Grp 2 - ( pos 13 , len 8 )
py.exe.d