如何在Python中替换最后的\ * \ ..在字符串中使用RE

时间:2014-08-25 10:02:33

标签: python regex

我需要解析路径并获取父目录。

str ='。\ Workspace \ 1st Project \ ww.settings ..' tostr ='。\ Workspace \ 1st Project'

我试了一下         bb = re.compile(r“。* \ w +。* \ s * \ w * \ s * \ w + \ .. $”)         tostr re.sub(bb,“”,str)

但并不是所有特殊路径都有一些“。”,“”路径中的characket。例如:“ww.settings”,“VC6.0green”,“。setting”,“sublime text.settinging”等

如何使一个好的RE匹配它,我可以替换它并获得正确的父目录。

4 个答案:

答案 0 :(得分:1)

无需重新发明轮子:)使用os.path module。您的任务有非常有用的功能,例如os.path.normpath

答案 1 :(得分:1)

用正则表达式回答(难怪为什么)

DEMO

正则表达式应为^(.+)\\.*$

它捕获了最后\

之前的所有内容

答案 2 :(得分:0)

提取路径组件:

import re
p = re.compile(ur'[^\\]+')
test_str = u".\Workspace\1st Project\ww.settings\.."
re.findall(p, test_str)

答案 3 :(得分:0)

您可以尝试以下使用正向前瞻的正则表达式

>>> s = ".\eric4-4.5.21\.VC6.0green"
>>> m = re.sub(r'^(.*)(?=\\[^.]*\.).*',r'\1', s)
>>> m
'.\\eric4-4.5.21'