我正在分析一些日志文件,需要为“size”参数提取一个整数。你知道吗
绳子(部分)看起来像这样
"asdasdasd\\\size\\x22:22\x0A23232d:123123123\x0A2"
我想得到“:”和“\”之间的第一个整数。那是22岁。不是123123。你知道吗
我尝试了以下代码
p = re.compile("[\:](\d+)[\D]")
s = "asdasdasd\\size\\x22:22\x0A23232d:123123123\x0A2"
p.findall(s)[0]
output = '22'
但是,如果“:”和“\”的第一次出现之间没有数字,并且希望代码返回None或0。现在,如果模式如下所示,代码将返回“123123”:
"asdasdasd\\size\\x22:\x0A23232d:123123123\x0A2"
实现这一目标的最佳方法是什么?你知道吗
可以将
re.search
与以下模式一起使用:参见regex demo with String 1和另一个demo with String 2。你知道吗
细节
^
-字符串开头[^:]*
-0+字符,而不是:
:
-a-
(\d+)
-捕获组1:一个或多个数字参见Python demo:
输出:
相关问题 更多 >
编程相关推荐