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+)(.*)";

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 :smiley:

2 Likes

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

Đâ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

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

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?