贪婪量词在Java正则表达式中的应用

贪婪量词在Java正则表达式中的应用

贪婪量词是默认的量词。如果没有匹配发生,贪婪量词会尽可能地从输入字符串中匹配最多的内容(最长的匹配),并且在匹配失败时会保留最后一个字符并重新匹配。以下是贪婪量词的列表:

量词 描述
re* 匹配零个或多个出现。

re? 匹配零个或一个出现。

re+ 匹配一个或多个出现。

re{n} 精确匹配 n 次出现。

re{n, } 至少匹配 n 次出现。

re{n, m} 匹配至少 n 次且最多 m 次出现。

示例

在下面的 Java 示例中,我们尝试匹配一个或多个数字,我们的输入字符串是 45545,虽然值 4、45、455 等都是符合条件的,但由于我们使用了贪婪量词,它会匹配最长的可能值。

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

登录后复制

以上就是贪婪量词在Java正则表达式中的应用的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!