作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目标
我只想使用 logstash Grok 从此消息中检索此字符串“14”
3/03/0 EE 14 GFR 20 AAA XXXXX 50 3365.00
grok{
match => {
field1 => [
"(?<number_extract>\d{0}\s\d{1,3}\s{1})"
]
}
}
14 20 50
最佳答案
如果您需要查找仅由 1、2 或 3 位数字组成的数字的第一次出现,您可以使用
^(?:.*?\s)?(?<number_extract>\d{1,3})(?!\S)
^
- 字符串开头 (?:.*?\s)?
- 除换行符以外的任何 0+ 字符的可选子字符串,尽可能少,然后是空格(如果存在,则可以在字符串的开头进行匹配)(?<number_extract>\d{1,3})
- 1 到 3 位数字 (?!\S)
- 一个负向前瞻,确保右边有一个空格或字符串结尾(在字符串结尾启用匹配)。 ^\d+/\d+/\d+\s+\S+\s+(?<number_extract>\d+)
^\S+\s+\S+\s+(?<number_extract>\d+)
^(?:\S+\s+){2}(?<number_extract>\d+) // Equivalent
^
- 字符串开头 \d+/\d+/\d+
- 1+ 位数字,/
, 1+ 位数字, /
, 1+ 位 \s+
- 1+ 个空格 \S+
- 除空格之外的 1+ 个字符 \s+
- 1+ 个空格 (?<number_extract>\d+)
- 捕获组“number_extract”:1+ 位数字。 关于regex - 如何仅获取正则表达式 Grok 过滤器的第一个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60559816/
我是一名优秀的程序员,十分优秀!