贪婪的量词是默认的量词。贪婪的量词从输入字符串中尽可能匹配(可能的最长匹配),如果未发生匹配,则它离开最后一个字符并再次匹配。以下是贪婪量词的列表-
量词 | 描述 |
---|---|
re* | 匹配零个或多个事件。 |
re? | 匹配零个或1个匹配项。 |
re+ | 匹配一个或多个事件。 |
re{n} | 精确匹配n次出现。 |
re{n, } | 至少匹配n个事件。 |
re{n, m} | 至少匹配n个事件,最多匹配m个事件。 |
在下面的Java示例中,我们尝试匹配1个或多个数字,尽管值4、45、455等符合条件,但我们的输入字符串为45545,因为我们使用的是贪婪量词,它匹配的字符串可能最长。
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter input text: "); String input = sc.nextLine(); String regex = "[0-9]+"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(input); System.out.println(“”Matched text: ); while (matcher.find()) { System.out.println(matcher.group()); } } }
输出结果
Enter input text: Matched text: 45545