我在用python工作。我的问题是我有几个字符串,我必须检测它们的哪一部分看起来像一条路径,然后规范化那些实际路径。
例如,我有几个不同的字符串,如下所示:
1。。\…\..\工作区
2。C: \源\工作区
3。-B、 .\..\来源
4。-生成..\..\work\source..\workspace
5。-高清:\abc\bds\Workspace
基本上,有些字符串是直接的路径,有些字符串还附加了一个后缀-。选项字符串的长度是可变的。
在上面的示例中,字符串3、4、5分别包含一个预先附加了选项-B、-build、-H的路径字符串。
问题在于如何从上述示例中检测字符串的哪一部分是路径,而哪部分不是路径。选项不是固定的,所以我不能只检查给定字符串的头部是否有预先指定的选项。
前进的唯一方法是从..开始获取子字符串。。或前面的一个字符:(例如C:或D:)。
所以问题是,有没有任何通用的方法可以做到这一点,或者python是否提供任何函数来从任何特定位置获取字符串的截断部分?
任何满足以上5个例子的答案都是很酷的,即使它有点过分。在
我当前用于例如2和5的代码是:path = path[path.find(':')-1:]
其他人则是path = path[path.find('.'):]
。但这并不是泛化和不酷的。所以我在寻找更好的算法或解决方案。在
好吧,我想你需要的工具是列表切片机制
我们初始化一个字符串:
例如,如果我们想首先访问两个元素,那么我们可以:
^{2}$如果我们想访问最后一个两个元素,那么我们将使用:
关于列表切片的更多信息http://www.pythoncentral.io/how-to-slice-listsarrays-and-tuples-in-python/
希望有帮助:)
如果你没有已知的选项列表,我不认为你可以有100%可靠的算法。在
如果我们进行一些合理的猜测,我可以这样想:
在某些情况下,这种情况会出现故障:
使用我创建的函数:
{{{cd2>返回函数。只要把这些字符串中的任何一个发送给函数就可以了。祝你好运!在评论中提出问题。在
相关问题 更多 >
编程相关推荐