Java 正则表达式中的贪婪限定符

java 8object oriented programmingprogramming

贪婪限定符会尽可能多地重复指定的标记,然后引擎回溯,贪婪限定符放弃匹配,最终找到所需的匹配。

正则表达式"(\w+)(\d)(\w+)"用于在字符串"EarthHas1Moon"中查找匹配项。

下面给出了一个演示此操作的程序:

示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo {
   public static void main(String args[]) {
      String str = "EarthHas1Moon";
      String regex = "(\w+)(\d)(\w+)";
      Pattern p = Pattern.compile(regex);
      Matcher m = p.matcher(str);
      m.find();
      System.out.println(m.group(1));
      System.out.println(m.group(2));
      System.out.println(m.group(3));
   }
}

输出

EarthHas
1
Moon

现在让我们理解上面的程序。

正则表达式是“(\w+)(\d)(\w+)”。这是在字符串序列"EarthHas1Moon"中搜索的。find() 方法用于查找正则表达式是否在输入序列中,并打印所需的结果。演示此操作的代码片段如下:

String str = "EarthHas1Moon";
String regex = "(\w+)(\d)(\w+)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
m.find();
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println(m.group(3));

相关文章