在Python中,有一种简单的方法可以从较大的字符串中提取看起来像路径的字符串吗?
例如,如果:
A = "This Is A String With A /Linux/Path"
我的路上有什么!想要提取的是:
"/Linux/Path"
我也希望它与操作系统无关,所以如果:
A = "This is A String With A C:\Windows\Path"
我想提取:
"C:\Windows\Path"
我猜是有办法用正则表达式查找/
或\
,但我只是想知道是否有更多的pythonic方式?
我很高兴承担主要字符串另一部分可能存在/
或\
的风险。
答案 0 :(得分:1)
您可以在os.sep
分割并获取长于1的结果:
import os
def get_paths(s, sep=os.sep):
return [x for x in s.split() if len(x.split(sep)) > 1]
在Linux / OSX上:
>>> A = "This Is A String With A /Linux/Path"
>>> get_paths(A)
['/Linux/Path']
对于多条路径:
>>> B = "This Is A String With A /Linux/Path and /Another/Linux/Path"
>>> get_paths(B)
['/Linux/Path', '/Another/Linux/Path']
模拟Windows:
>>> W = r"This is A String With A C:\Windows\Path"
>>> get_paths(W, sep='\\')
['C:\\Windows\\Path']