Python 正则表达式匹配[]之间的所有数字

Python 正则表达式匹配[]之间的所有数字,python,regex,Python,Regex,非常简单的正则表达式问题我有一个字符串,可能看起来像: [10] [6378363]30 []393 我希望它能分别匹配106378363和零 我尝试了类似\d+[^]] 匹配1个或多个数字,因为我们知道第一个字符总是[ 最多] 但这只是匹配的数字,我想我对正则表达式的语法是错误的,因为我对正则表达式一窍不通!任何帮助都将是惊人的您正在寻找的正则表达式是: \[(\d*)\] 应该是这样的: \[(\d*)\] 正则表达式\d+[^]]将匹配数字,直到出现一个[为止,因此它不会捕获方括号

非常简单的正则表达式问题我有一个字符串,可能看起来像:

[10] [6378363]30 []393 我希望它能分别匹配106378363和零

我尝试了类似\d+[^]] 匹配1个或多个数字,因为我们知道第一个字符总是[ 最多]


但这只是匹配的数字,我想我对正则表达式的语法是错误的,因为我对正则表达式一窍不通!任何帮助都将是惊人的

您正在寻找的正则表达式是:

\[(\d*)\]

应该是这样的:

\[(\d*)\]
正则表达式\d+[^]]将匹配数字,直到出现一个[为止,因此它不会捕获方括号之间的数字。[和]是正则表达式中的特殊字符,因此它们应该用\进行转义

您可以使用这个:

import re

input = '[10] [6378363]30 []393'
print re.findall('\[(\d+)\]', input)

\d+表示一个或多个数字。这将确保避免[],因为它里面有零个数字。

不要对输入进行阴影处理!:我认为@zidsal希望为“[]返回一个空字符串393'@AdamSmith谢谢。我不知道。我已经习惯了不使用str。看起来我也必须使用这个了!@IceArdor Lol。毫无疑问,我认为OP不需要返回任何其他内容。@SabujHassan我通常做用户输入等。如果你从用户那里获得信息,从stdin有时也会很好地工作。
import re

input = '[10] [6378363]30 []393'
print re.findall('\[(\d+)\]', input)