在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的方法?
我很乐意承担 /
或 \
可能存在于主字符串的其他部分的风险。
最佳答案
您可以通过 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']
模拟窗口:
>>> W = r"This is A String With A C:\Windows\Path"
>>> get_paths(W, sep='\\')
['C:\\Windows\\Path']
关于string - 从字符串中提取类似字符串的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36702426/