当我在下面运行此代码时。
x="abc=2015 and xyz=1806".split("=")
print x
我得到了这个:
['abc', '2015 and xyz', '1806']
但是,我希望输出为2015
和1806
。
任何人都可以帮助我。
答案 0 :(得分:1)
import re
print(' '.join(re.split('\D',"abc=2015 and xyz=1806")))
2015 1806
或列表:
print([int(x) for x in re.split('\D',"abc=2015 and xyz=1806") if x.isdigit()])
[2015, 1806]
答案 1 :(得分:1)
如果可以选择,则无需加入或拆分。
>>> x="abc=2015 and xyz=1806"
>>> import re
>>> y = re.findall('\d+', x)
>>> print(y)
['2015', '1806']
答案 2 :(得分:1)
很多选项,如果你知道" and "
是分隔符,那么另一个选项就是你可以先分开" and "
:
>>> x="abc=2015 and xyz=1806"
>>> [s.split('=')[1] for s in x.split(" and ")]
['2015', '1806']
或者将标签值保存在dict中并只打印值:
>>> d = dict(s.split('=') for s in x.split(" and "))
>>> d.values()
['1806', '2015']
答案 3 :(得分:0)
x="abc=2015 and xyz=1806"
print [i.split("=")[1] for i in x.split() if '=' in i]
输出:['2015', '1806']
您可以先拆分,然后检查=
是否存在,然后按=
拆分。
答案 4 :(得分:0)
string = "abc=2015 and xyz=1806"
x = [int(i.split("=")[1]) for i in string.split() if '=' in i]
print(x)
答案 5 :(得分:0)
import re
s='abc = 2015 and xyz = 1806'
r='[=\s*](\d+)'
for x in re.findall(r, s):
print(x)