2012-06-12 11 views
5

웹 페이지에 동시에 두 개의 구문을 표시 할 수있는 정규 표현식을 찾고 있습니다.두 개의 개별 구와 일치하는 정규 표현식

내가 웹에서 확인해야 두 문구는 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 

I 웹 사이트의 각 문구는 일치시킬 수 있지만 두 문구는 함께 일치시킬 수 없습니다. 내 도구가 두 문구 사이의 내용을 무시하도록하려면 어떻게해야합니까?

P. 나는 어떤 언어로도 여기에서 프로그래밍하지 않고, 정규 표현식을 정규 표현식을 허용하는 도구에 넣을 것이다.

+0

를 작동해야이의 중복 [이 질문] (http://stackoverflow.com/questions/5809272입니다/c-sharp-regular-expression-to-match-any-character). –

+0

같은 문제가 있습니다.하지만 실제로는 중복되지 않습니다. 그 중 하나가 줄 바꿈을 처리하는 방법을 묻는 중,이 하나는 정규식을 결합하는 방법을 묻습니다. – vergenzt

답변

5

당신은 그들이 모든 경우에,이 일을해야, 순서대로 나타납니다 확신 할 수있는 경우 :

(<query 1>).*(<query 2>) 

일예를

(Average Latency \(last \d+ queries\)).*(Current QPS \(last \d+s, ignored \d+\)) 

. 연산자가 도구의 개행과 일치하는지 확인해야 할 수도 있습니다. 그것을 처리하는 방법을 구체적으로 - 나의 첫번째 제안

+0

하지만 두 문구 사이에 텍스트가 필요 없습니다. 어떻게 그들을 제거 할 수 있습니까? – Madean

+0

어떤 도구를 사용하고 있습니까? 패턴이 일치 할 때 어떤 작업을하려고합니까? – vergenzt

+0

엔터프라이즈 도구를 사용하고 있습니다. 기본적으로이 도구는 정규식을 받아들이고 두 문자열이 발견되면 페이지 상태를 양호한 것으로 반환합니다. – Madean

1

는 당신이 그 (것)들을

/($regex1.*?$regex2|$regex2.*?$regex1)/ 
+0

도움을 주셔서 감사합니다.하지만 불행히도이 도구가 내 도구에서 작동하지 않습니다. 하나의 질문 - '. *'는 중간 부분을 무시하는 작업을 수행합니까? – Madean

+0

''. *?''는 두 표현식 사이의 (가장 작은) 부분을 찾습니다. 어쩌면 플래그를 설정해야합니다. 개행과 일치시키기 – Hachi

0

그것은 당신이 사용하고있는 도구에 의존 할 수 나타날 것으로 예상 단순히 임의의 순서로 정규 표현식에 두 개의 패턴을 추가하는 것입니다 여러 줄.

당신이 시도 할 수 있습니다 :

Average Latency \(last \d+ queries\)\s(.*\s)*Current QPS \(last \d+s, ignored \d+\)\s 
0

이 기본적으로

(?im)^(Average\s+Latency\s+\(last\s+100\s+queries\)|Current\s+QPS\s+\(last\s+10s,\s+ignored\s+0\)).+