http://regex101.com/r/oU6eI5/1,测试这里缝有效,但是当我放入Python时,匹配整个str.
str = galley/files/tew/tewt/tweqt/
re.sub('^.+/+([^/]+/$)', "\1", str)
Run Code Online (Sandbox Code Playgroud)
我想得到"tweqt /"
您需要在替换中使用原始字符串:
str = galley/files/tew/tewt/tweqt/
re.sub('^.+/+([^/]+/$)', r"\1", str)
# ^
Run Code Online (Sandbox Code Playgroud)
否则,您将获得转义字符\1
.例如在我的控制台上,它有点笑脸.
如果你以某种方式不想生成你的字符串,你将不得不逃避反斜杠:
re.sub('^.+/+([^/]+/$)', "\\1", str)
Run Code Online (Sandbox Code Playgroud)
另外值得注意的是,生成正则表达式字符串并使用一致的引号是一个很好的做法,所以我建议您使用:
re.sub(r'^.+/+([^/]+/$)', r'\1', str)
Run Code Online (Sandbox Code Playgroud)
其他说明
匹配(使用re.search
)而不是使用可能更简单re.sub
:
re.search(r'[^/]+/$', str).group()
# => tweqt/
Run Code Online (Sandbox Code Playgroud)
并且您可能希望使用另一个变量名称,str
因为这将覆盖现有函数str()
.
归档时间: |
|
查看次数: |
452 次 |
最近记录: |