2012-02-20 23 views
13

Trong dự án Android của tôi, tôi có biểu thức chính quy và một chuỗi, trong đó tôi phải có biểu thức khớp. Vấn đề là, tôi đã chỉ tìm thấy một phương pháp matches(), trả về boolean. Có cái gì đó, mà chỉ trả về chuỗi phù hợp (ví dụ, nếu chuỗi của tôi là "đi đến cửa hàng lúc 12 giờ tối", tôi muốn kiểm tra xem có một thời gian trong chuỗi này (trong ví dụ này - "12 giờ chiều"), nếu nó là - trả lại nó)? Cảm ơn trước.Biểu thức chính quy của Android - chuỗi kết hợp trả về

Trả lời

29

bạn sẽ nhận được nhóm bạn cần. Đọc this. Bạn sẽ tìm thấy câu trả lời cho câu hỏi của bạn.
Đây là một ví dụ đơn giản cho bạn. Tôi nghĩ bạn sẽ hiểu nó.

Pattern p = Pattern.compile(".*?(\\d{2}(am|pm)).*"); 
Matcher m = p.matcher("go to the shop at 12pm"); 
if(m.matches()) 
    return m.group(1); 

này sẽ trở lại 12pm
Trên thực tế bạn có thể có được những gì bạn muốn với cách tốt hơn.

Pattern p = Pattern.compile("\\d{2}(am|pm)"); 
Matcher m = p.matcher("go to the shop at 12pm"); 
if(m.find()) 
    return m.group(0); //or you can write return m.group(); result will be the same. 
+0

Đây chính xác là những gì tôi cần! Cảm ơn rất nhiều, @Ademiban! – lomza

+0

@ shift66 Xin chào, bạn có thể xem câu hỏi này không? http://stackoverflow.com/questions/34938232/android-regex-passing-of-text-output-from-method-to-method –

Các vấn đề liên quan