使用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提取括号中的所有数字[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

提取嵌套字典python中的所有组合[关闭]

正则表达式提取括号中的数据

php 正则表达式 提取字符串内小括号中的数字,只要数字

python的正则表达式

在 Python 3.4 中从 PDF 中提取文本的最佳工具 [关闭]

使用 regxr 或 python 中任何合适的方式在函数之间提取代码