我正在寻找一个正则表达式,可以确保同时在网页上显示两个短语。
我需要在网络上确保的两个短语是Current QPS (last 10s, ignored 0)
和Average Latency (last 100 queries)
网页看起来像(查询时间会有所不同,但文字不会改变):
Query Statistics
Average QPS 25.3673
Average Latency 0.1002
Average Latency (last 100 queries) 0.0834 # Match this one, ignore output-0,0834
Average Search Latency 0.0555
Average Docsum Latency 0.0330
Sampling period 3133524.9570
Current QPS (last 10s, ignored 0) 24.8000 # Also match this one, ignore output 24.8000
Peak QPS 170.9000
Number of requests 79717858
Number of queries 79489080
我能够匹配网站上的每个短语,但不能匹配两个短语。如何让我的工具忽略两个短语之间的内容?
P.S。我不是在这里用任何语言编程,正则表达式将被放入一个接受正则表达式的工具。
答案 0 :(得分:6)
如果您可以确定它们将以该顺序出现,如果有的话,那么这应该有效:
(<query 1>).*(<query 2>)
E.g。
(Average Latency \(last \d+ queries\)).*(Current QPS \(last \d+s, ignored \d+\))
您可能需要检查.
运算符是否符合工具中的换行符。
答案 1 :(得分:1)
我的第一个建议就是按照您希望它们出现的任何顺序在正则表达式中添加两个模式
/($regex1.*?$regex2|$regex2.*?$regex1)/
答案 2 :(得分:0)
它可能取决于您正在使用的工具 - 具体来说,它取决于它如何处理多行。
你可以试试这个:
Average Latency \(last \d+ queries\)\s(.*\s)*Current QPS \(last \d+s, ignored \d+\)\s
答案 3 :(得分:0)
这应该有用
(?im)^(Average\s+Latency\s+\(last\s+100\s+queries\)|Current\s+QPS\s+\(last\s+10s,\s+ignored\s+0\)).+