非常简单的正则表达式问题我的字符串可能看起来像:
我喜欢它,所以它分别与10,6378363相匹配。
我试过像(\ d +)[^]这样的东西 (匹配1个或更多数字,因为我们知道第一个字符将永远是[) (最多))
但这只是匹配数字我假设我有正则表达式的语法错误,因为我只是在正则表达式垃圾!任何帮助都会很棒
答案 0 :(得分:4)
应该是这样的:
\[(\d*)\]
正则表达式(\d+)[^]]
会匹配数字,直到[
出现,因此它不会捕获方括号之间的数字。 [
和]
是正则表达式中的特殊字符,因此应使用\
进行转义。
>>> import re
>>> st = '[6378363]30'
>>> re.match('\[(\d*)\]', st).group(1)
'6378363'
答案 1 :(得分:4)
你可以使用这个:
import re
input = '[10] [6378363]30 []393'
print re.findall('\[(\d+)\]', input)
\d+
表示一个或多个数字。这将确保避免[]
,因为它内部的数字为零。
答案 2 :(得分:0)
您正在寻找的正则表达式是:
\[(\d*)\]