Python正则表达式问题

时间:2012-04-19 18:52:25

标签: python

我有一个这种类型的字符串:

s = "//name#1  un2 //name2#1  u13 //name3#3"

如何获取这些字符串数组:

s1 [] = "//name, //name2, name3"
s2 [] = "1, 2, 3"

2 个答案:

答案 0 :(得分:2)

这只用一个正则表达式来实现:

>>> s = "//name#1  un2 //name2#1  u13 //name3#3"
>>> import re
>>> x = re.findall(r"(\S+)#(\S+)", s)
>>> [s1, s2] = [', '.join(y) for y in zip(*x)]
>>> s1
'//name, //name2, //name3'
>>> s2
'1, 1, 3'

答案 1 :(得分:0)

可能你正在寻找

>>> s1=", ".join(re.findall("(//.*?)#\d+",s))
>>> s2=", ".join(re.findall("#(\d+)",s))
>>> s1
'//name, //name2, //name3'
>>> s2
'1, 1, 3'
>>>