Java 正则表达式中的量词类型
如果希望在构造正则表达式时指定出现的次数,可以使用限定符。Java支持三种类型的量词:贪婪量词、非贪婪量词和所有格量词。
贪婪量词:贪婪量词是默认的量词。贪婪量词从输入字符串中尽可能多地匹配(尽可能长的匹配),如果没有匹配,它将保留最后一个字符并再次匹配。
示例
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]+";
//创建一个pattern 对象
Pattern pattern = Pattern.compile(regex);
//匹配字符串中的编译模式
Matcher matcher = pattern.matcher(input);
System.out.println(""Matched text: );
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
Enter input text: Matched text: 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]+?";
//pattern
Pattern pattern = Pattern.compile(regex);
//匹配字符串中的编译模式
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
Enter input text: 12345678 1 2 3 4 5 6 7 8
所有格量词:所有格量词类似于贪婪量词唯一的区别是它试图匹配尽可能多的字符,因为它可以一开始,如果匹配没有发生不像贪婪量词它不会回溯。
如果你在贪婪的量词后面加一个“+”,它就变成了所有格量词。以下是所有格量词列表:
示例
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);
//匹配字符串中的编译模式
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.print(matcher.group());
System.out.println();
}
}
}
Enter input text: 45678 45678
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短