使用Python提取括号中的所有数字

使用Python提取括号中的所有数字,python,find,brackets,Python,Find,Brackets,我有一根像这样的线: s = "asd[123]348dsdk[45]sdhj71[6789]sdfh" s_filter = "123 45 6789" 我需要一个包含括号中数字的其他字符串,如下所示: s = "asd[123]348dsdk[45]sdhj71[6789]sdfh" s_filter = "123 45 6789" 很抱歉没有发表我自己的想法! 我试着用这个: s = "asd[123]348dsdk[45]sdhj71[6789]sdfh" s_filter =

我有一根像这样的线:

s = "asd[123]348dsdk[45]sdhj71[6789]sdfh"
s_filter = "123 45 6789"
我需要一个包含括号中数字的其他字符串,如下所示:

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"
但它只给了我第一个数字

有什么想法吗

最好的,
Hans

简单的if/elif statment可以做到:

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
123 45 6789
Regex可以做到这一点:

s = "asd[123]348dsdk[45]sdhj71[6789]sdfh"
import re
s_filter  = ' '.join(re.findall(r"\[(\d+)\]",s)))

print(s_filter)
输出:

123456789
123 45 6789
解释的模式:

\[         \]   are the literal square brackets
    (\d+?)      as as few numbers inside them as capture group

re.findall找到它们并将它们重新组合成一个字符串。

请在询问之前尝试并分享您的尝试,因此不是编码服务。请检查我一直想阅读该模块,我想可能是太懒了。谢谢!这就是我要找的!