贪婪量词是默认的量词。如果没有匹配发生,贪婪量词会尽可能地从输入字符串中匹配最多的内容(最长的匹配),并且在匹配失败时会保留最后一个字符并重新匹配。以下是贪婪量词的列表:
量词 | 描述 |
---|---|
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)其它相关文章!