拆分字符串(在空格或标点符号上)以获取所有数字
Split a string (on whitespace or punctuation) to get all numbers
我有一个字符串
Mystring = "123 456 789, 234, 999|567 888[222"
我想将此字符串拆分为 " "
","
"|"
和 "["
以获得列表中的所有数字
预期输出:-
List = ["123","456","789","234","999",567","888","222"]
我正在使用以下代码
Final_List = re.findall("(\d+?)[ ,|\]]",Mystring)
实际输出:
["123","456","789",234","999",567"]
我怎样才能得到这里的所有数字?
与其拆分字符串,不如直接获取数字:
>>> import re
>>> Mystring = "123 456 789, 234, 999|567 888[222"
>>> re.findall('\d+', Mystring)
['123', '456', '789', '234', '999', '567', '888', '222']
>>>
\d+
Python 匹配一个或多个数字(数字)。
import string
tbl = string.maketrans(',|['," ")
print(Mystring.translate(tbl)).split()
['123', '456', '789', '234', '999', '567', '888', '222']
In [29]: import string
In [30]: %%timeit
....: tbl = string.maketrans(',|['," ")
....: (Mystring.translate(tbl)).split()
....:
1000000 loops, best of 3: 762 ns per loop
In [31]: import re
In [32]: timeit re.findall('\d+', Mystring)
100000 loops, best of 3: 2.99 µs per loop
我有一个字符串
Mystring = "123 456 789, 234, 999|567 888[222"
我想将此字符串拆分为 " "
","
"|"
和 "["
以获得列表中的所有数字
预期输出:-
List = ["123","456","789","234","999",567","888","222"]
我正在使用以下代码
Final_List = re.findall("(\d+?)[ ,|\]]",Mystring)
实际输出:
["123","456","789",234","999",567"]
我怎样才能得到这里的所有数字?
与其拆分字符串,不如直接获取数字:
>>> import re
>>> Mystring = "123 456 789, 234, 999|567 888[222"
>>> re.findall('\d+', Mystring)
['123', '456', '789', '234', '999', '567', '888', '222']
>>>
\d+
Python 匹配一个或多个数字(数字)。
import string
tbl = string.maketrans(',|['," ")
print(Mystring.translate(tbl)).split()
['123', '456', '789', '234', '999', '567', '888', '222']
In [29]: import string
In [30]: %%timeit
....: tbl = string.maketrans(',|['," ")
....: (Mystring.translate(tbl)).split()
....:
1000000 loops, best of 3: 762 ns per loop
In [31]: import re
In [32]: timeit re.findall('\d+', Mystring)
100000 loops, best of 3: 2.99 µs per loop