2012-06-12 33 views
5

Tôi đang tìm cụm từ thông dụng có thể đảm bảo hai cụm từ hiển thị trên một trang web cùng một lúc.Cụm từ thông dụng để khớp với hai cụm từ riêng biệt

Hai cụm từ tôi cần phải đảm bảo trên web là Current QPS (last 10s, ignored 0)Average Latency (last 100 queries)

Trang web trông giống như (Thời gian truy vấn sẽ là khác nhau, nhưng văn bản sẽ không thay đổi):

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 

tôi có thể kết hợp từng cụm từ trên trang web, nhưng không thể kết hợp hai cụm từ lại với nhau. Làm cách nào để công cụ của tôi bỏ qua nội dung giữa hai cụm từ?

P.S. Tôi không lập trình bằng bất kỳ ngôn ngữ nào ở đây, regex sẽ được đưa vào một công cụ chấp nhận regex.

+0

Về cơ bản, đây là một bản sao của [câu hỏi này] (http://stackoverflow.com/questions/5809272/c-sharp-regular-expression-to-match-bất kỳ ký tự nào). –

+0

Nó liên quan đến một số vấn đề tương tự .. nhưng nó không thực sự là một bản sao. Đó là một trong những yêu cầu làm thế nào để đối phó với newlines, điều này là yêu cầu làm thế nào để kết hợp regexes. – vergenzt

Trả lời

5

Nếu bạn có thể chắc chắn rằng họ sẽ xuất hiện theo thứ tự đó, nếu ở tất cả, thì điều này sẽ làm việc:

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

Ví dụ:

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

Bạn có thể cần kiểm tra xem toán tử . khớp với dòng mới trong công cụ của mình hay chưa.

+0

Nhưng tôi không cần văn bản giữa hai cụm từ. Làm thế nào bạn có thể loại bỏ chúng? – Madean

+0

Bạn đang sử dụng công cụ gì và bạn đang cố gắng làm gì nếu/khi các mẫu đó khớp với nhau? – vergenzt

+0

Tôi đang sử dụng một công cụ dành cho doanh nghiệp. Về cơ bản, công cụ chấp nhận regex và trả lại trạng thái trang là tốt nếu tìm thấy hai chuỗi. – Madean

1

đầu tiên của tôi gợi ý là chỉ cần thêm hai mẫu trong biểu thức chính quy của bạn trong bất kỳ thứ tự bạn mong đợi họ xuất hiện

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

Cảm ơn sự giúp đỡ, nhưng tiếc là biểu hiện không hoạt động trong công cụ của tôi. Một quesiont - hiện các '. *?' Làm công việc bỏ qua phần giữa? – Madean

+0

''. *? '' Khớp với bất kỳ phần nào (nhỏ nhất) giữa hai biểu thức; có thể bạn phải đặt cờ cho. để so khớp dòng mới – Hachi

0

Nó có thể phụ thuộc vào công cụ bạn đang sử dụng - đặc biệt, làm thế nào nó xử lý nhiều dòng.

Bạn có thể thử này:

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

này nên làm việc

(?im)^(Average\s+Latency\s+\(last\s+100\s+queries\)|Current\s+QPS\s+\(last\s+10s,\s+ignored\s+0\)).+ 
Các vấn đề liên quan