30/09/2018, 21:26

Capturing Group

Mọi người cho mình hỏi dòng code dưới đây gồm những group nào (vd group(0) …) và group đó có nghĩa gì? Đây là code Java.

String pattern = "(.*)(\d+)(.*)";

while (!(sucesecd = try())) viết 23:39 ngày 30/09/2018

ko chắc lắm nha:
3 group

  • 1: (.*) xâu chứa 0 hoặc nhiều “.”
  • 2: (\d+) xâu chưa 1 hoặc nhiều chữ số 0 - 9
  • 3: (.*) như nhóm 1

nó sẽ match với các xâu như: 1 .1 .0. .123... .....3141592654...... etc

Kudo Vĩ viết 23:33 ngày 30/09/2018

Cho mình thêm Group(0) luôn đi bạn!

Kudo Vĩ viết 23:41 ngày 30/09/2018

Đây là code đầy đủ:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches
{
    public static void main( String args[] ){

      // String de duoc quet de tim pattern.
      String line = "Vietjack xin chao cac ban. Day la vi du ve Regex! 1000  0USD";
      String pattern = "(.*)(\\d+)(.*)";

      // Tao mot doi tuong Pattern
      Pattern r = Pattern.compile(pattern);

      // Tao doi tuong matcher.
      Matcher m = r.matcher(line);
      if (m.find( )) {
         System.out.println("Gia tri duoc tim thay la: " + m.group(0) );
         System.out.println("Gia tri duoc tim thay la: " + m.group(1) );
         System.out.println("Gia tri duoc tim thay la: " + m.group(2) );
      } else {
         System.out.println("Khong co ket noi");
      }
   }
}

Đây là kết quả
Gia tri duoc tim thay la: Vietjack xin chao cac ban. Day la vi du ve Regex! 1000 0USD
Gia tri duoc tim thay la: Vietjack xin chao cac ban. Day la vi du ve Regex! 1000
Gia tri duoc tim thay la: 0

Nhờ mọi người giải thích giùm

Gió viết 23:35 ngày 30/09/2018

. Sẽ match với một kí tự bất kì

Bài liên quan
0