作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在解析一些日志文件,需要提取“大小”参数的整数。
字符串(它的一部分)看起来像这样
"asdasdasd\\\size\\x22:22\x0A23232d:123123123\x0A2"
我想获取“:”和“\”之间的第一个整数。那是 22。不是 123123123。
我尝试过以下代码
p = re.compile("[\:](\d+)[\D]")
s = "asdasdasd\\size\\x22:22\x0A23232d:123123123\x0A2"
p.findall(s)[0]
output = '22'
但是,如果“:”和“\”第一次出现之间没有数字,并且希望代码返回 None 或 0。现在,如果模式如下所示,代码将返回“123123123”:
"asdasdasd\\size\\x22:\x0A23232d:123123123\x0A2"
实现这一目标的最佳方法是什么?
最佳答案
您可以使用具有以下模式的re.search
:
p = re.compile(r"^[^:]*:(\d+)")
请参阅regex demo with String 1另一个demo with String 2 .
详细信息
^
- 字符串开头 [^:]*
- 除 :
之外的 0+ 个字符:
- 一个 -
(\d+)
- 捕获组 1:一位或多位数字请参阅Python demo :
import re
strs = ["asdasdasd\\size\\x22:\x0A23232d:123123123\x0A2", "asdasdasd\\\size\\x22:22\x0A23232d:123123123\x0A2"]
p = re.compile(r"^[^:]*:(\d+)")
for s in strs:
result = ""
m = p.search(s)
if m:
result = m.group(1)
else:
result = None
print(result)
输出:
None
22
关于python - 如何在Python中使用正则表达式获取两个特定字符之间的第一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55493932/
我是一名优秀的程序员,十分优秀!