Regex python3.x正则表达式拆分删除第一个字符

Regex python3.x正则表达式拆分删除第一个字符,regex,python-3.x,Regex,Python 3.x,我不知道我的正则表达式有什么问题,也不知道为什么要删掉第一个字符。正则表达式正确地标识了我想要拆分的内容,但是为什么数组的每个元素中都缺少第一个字符呢 >>> f = "value: http://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:user-services-http/ssoeproxy/logout value: http://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:u

我不知道我的正则表达式有什么问题,也不知道为什么要删掉第一个字符。正则表达式正确地标识了我想要拆分的内容,但是为什么数组的每个元素中都缺少第一个字符呢

>>> f = "value: http://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:user-services-http/ssoeproxy/logout    value: http://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:user-services-http-two/ssoeproxy/logout    value: user-services-http #458930               value: user-services-http-two #458930"
>>> re.split(r'[a-z0-9]([-a-z0-9]*[a-z0-9])?', f)
>>> ['', 'alue', ': ', 'ttp', '://', 'c2-xxx-xxx-xxx-xxx', '.', 'ompute-1', '.', 'mazonaws', '.', 'om', ':', 'ser-services-http', '/', 'soeproxy', '/', 'ogout', '    ', 'alue', ': ', 'ttp', '://', 'c2-xxx-xxx-xxx-xxx', '.', 'ompute-1', '.', 'mazonaws', '.', 'om', ':', 'ser-services-http-two', '/', 'soeproxy', '/', 'ogout', '    ', 'alue', ': ', 'ser-services-http', ' #', '58930', '               ', 'alue', ': ', 'ser-services-http-two', ' #', '58930', '']

这里对问题的更详细解释是,如果只指定一个捕获组,
split()。它不会在整个正则表达式上分裂。在这种情况下,除了第一个字母外,您正在捕获所有内容<代码>[a-z0-9]
不在括号内。移动括号以包含此部分,您就可以开始了。

您的括号不合适。
([a-z0-9][a-z0-9]*[a-z0-9])?
尝试
([a-z0-9](?:[-a-z0-9]*[a-z0-9])