我需要匹配以下正则表达式
lines...
# TYPE word expression
lines...
其中表达式只能是以下摘要之一,计数器,计量器,直方图或无类型
例如:
# HELP http_requests A summary of all the requests being made
# TYPE http_requests summary
http_request{requestMethod="GET",requestPath="/status/detailed",requestStatusCode="503"} 824
http_request{requestMethod="GET",requestPath="/status/detailed",requestStatusCode="503"} 334
我尝试了以下但似乎无法正常工作
?^{# TYPE}\s\w\s(summary|counter|gauge|histogram|untyped)$?
知道我缺少什么吗?
答案 0 :(得分:1)
您可以使用
(?m)^# TYPE +\w+ +(summary|counter|gauge|histogram|untyped)\r?$
这就是您需要匹配多行字符串中的行。
详细
(?m)
- 多线修改器^
- 开始行# TYPE +
- # TYPE
子字符串和一个或多个空格\w+ +
- 1个单词字符,然后是1 +空格(summary|counter|gauge|histogram|untyped)
- 交替组中的一个子字符串\r?
- 一个可选的CR符号(必需$
在.NET正则表达式中此符号之前不匹配)$
- 行尾。答案 1 :(得分:0)
使用以下方法成功测试:#TYPE(。*)\ b(摘要|计数器|计量器|直方图|无类型)\ b \ r?\ n?
如果你匹配整个例子(多行文本),这是有效的,但如果你遍历每一行并匹配正则表达式使用:
^#TYPE(。*)\ b(摘要|计数器|规范|直方图|无类型)\ b \ r?\ n?$