使用Python提取括号中的所有数字[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Python提取括号中的所有数字[关闭]相关的知识,希望对你有一定的参考价值。
我有一个字符串看起来像这样:
s = "asd[123]348dsdk[45]sdhj71[6789]sdfh"
我需要一个包含括号中的数字的其他字符串,如下所示:
s_filter = "123 45 6789"
很抱歉没有发表自己的想法!我试着用这个:
s = "asd[123]348dsdk[45]sdhj71[6789]sdfh"
s_filter = s[s.find("[")+1:s.find("]")]
result: s_filter = "123"
但它只给了我第一个数字。
有任何想法吗?
最好,汉斯
答案
正则表达式可以做到这一点:
s = "asd[123]348dsdk[45]sdhj71[6789]sdfh"
import re
s_filter = ' '.join(re.findall(r"[(d+)]",s)))
print(s_filter)
输出:
123 45 6789
模式解释:
[ ] are the literal square brackets
(d+?) as as few numbers inside them as capture group
re.findall
发现它们全部并且' '.join(iterable)
c将它们重新组合成一个字符串。
另一答案
简单的if / elif语句会这样做:
s = "asd[123]348dsdk[45]sdhj71[6789]sdfh"
s_filter = ""
x = False
for i in s:
if i == "[": x = True
elif i == "]": x = False
elif x: s_filter += i
print(s_filter)
输出:
123456789
以上是关于使用Python提取括号中的所有数字[关闭]的主要内容,如果未能解决你的问题,请参考以下文章