2012-06-12 14 views
5

Estoy buscando una expresión regular que pueda asegurar que aparezcan dos frases en una página web al mismo tiempo.Expresión regular para unir dos frases separadas

Las dos frases que necesito para asegurar en la web son Current QPS (last 10s, ignored 0) y Average Latency (last 100 queries)

La página web se ve como (El tiempo de consulta sería diferente, pero el texto no cambiará):

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 puedo hacer coincidir cada frase en el sitio web, pero no las dos frases juntas. ¿Cómo puedo hacer que mi herramienta ignore el contenido entre las dos frases?

P.S. No estoy programando en ningún idioma aquí, la expresión regular se colocará en una herramienta que acepte expresiones regulares.

+0

Básicamente, se trata de un duplicado de [esta cuestión] (http://stackoverflow.com/questions/5809272/c-sharp-regular-expression-to-match-any-character). –

+0

Incluye algunos de los mismos problemas ... pero en realidad no es un duplicado. Esa preguntaba cómo lidiar con líneas nuevas, esta pregunta cómo combinar expresiones regex. – vergenzt

Respuesta

5

Si usted puede estar seguro de que van a aparecer en ese orden, en todo caso, a continuación, esto debería funcionar:

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

P. ej

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

Es posible que tenga que comprobar que el operador . coincide con saltos de línea en su herramienta.

+0

Pero no necesito el texto entre las dos frases. ¿Cómo puedes deshacerte de ellos? – Madean

+0

¿Qué herramienta está utilizando y qué intenta hacer si/cuando esos patrones coinciden? – vergenzt

+0

Estoy usando una herramienta empresarial. Básicamente, la herramienta acepta la expresión regular y devuelve el estado de la página como bueno si se encuentran las dos cadenas. – Madean

1

mi primer sugerir es simplemente agregar los dos patrones de la expresión regular en cualquier orden que usted espera que aparezcan

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

Gracias por la ayuda, pero desafortunadamente la expresión no funciona en mi herramienta. Una quesiont - ¿el '. *?' Hace el trabajo de ignorar la parte media? – Madean

+0

''. *? '' Coincide con cualquier parte (la más pequeña) entre las dos expresiones; tal vez tienes que establecer una bandera para. para unir líneas nuevas – Hachi

0

Se podría depender de la herramienta que está utilizando - en concreto, cómo se maneja múltiples líneas

Puede probar esto:

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

Esto debería funcionar

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