正则表达式 - 在逗号字符后丢弃文本

标签 regex logstash logstash-grok

如果我有文字:

test: firstString, blah: anotherString, blah:lastString

我怎样才能得到文本“firstString”

我的正则表达式是:
 test:(.*),

编辑
这又带回来 firstString, blah: anotherString,但我只需要带回文本“firstString”?

最佳答案

使用非贪婪量词:

test:(.*?),

或者一个字符类:
test:([^,]*),

也忽略逗号:
test:([^,]*)

如果您想省略 test:你也可以像这样使用后视:
(?<=test:\s)[^,]*

由于您正在使用此 grok debugger ,我能够通过使用命名的捕获组来使其工作:
(?<test>(?<=test:\s)[^,]*)

关于正则表达式 - 在逗号字符后丢弃文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357176/

相关文章:

regex - 将单词的一部分分配给变量

java - Java 中的正则表达式,如果找到 "N","E","W","S"以外的任何字符,则返回 false

android - 正则表达式将字母与点和破折号匹配(不能相邻)

elasticsearch - elasticsearch 5.1.1 的未知设置 'protocol'

elasticsearch - 自定义日志字符串的ElasticSearch Grok模式问题

regex - 如何匹配 grok/logstash 中的换行符?

MarkDown 源代码中的正则表达式惰性量词和否定类

java - 使用sincedb删除通过logstash传输的日志,或使用替代解决方案

elasticsearch - logstash不够快地输出到elasticsearch

elasticsearch - 重复数据-Elasticsearch