python正则表达式(?=)匹配的问题

BrankoJuan 发布于 2016/07/21 17:45
阅读 216
收藏 0
#!/usr/local/easyops/python/bin/python
#-*- coding: utf-8 -*-


import re

string = "/usr/local/bin"
pattern = re.compile(r"\S*(?=/)(.*)$")
list1 = pattern.findall(string)

print list1

结果list1[0]的结果是'/bin',为什么不是'bin'呢,我认为结果应该是bin,因为我匹配的是/后的bin呀

加载中
0
502BadGateway
502BadGateway
pattern = re.compile(r"\S*(?<=/)(.*)$")


?<=/:   匹配前面是/的(.*)

?=/:  匹配 后面是(.*)的/

你对比一下这俩的说法。完整匹配的语意是不同的。

另外,如果你确定字符串一定是个路径的话,直接用sys.path.split 或者字符串的split函数比正则简单。

0
B
BrankoJuan

楼上正解,学习了

返回顶部
顶部