该标志启用Unix行模式。在Unix行模式下,仅将'\ n'用作行终止符,而将'\ r'视为文字字符。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class LTERAL_Example { public static void main(String[] args) { String input = "This is the first line\r" + "This is the second line\r" + "This is the third line\r"; //正则表达式以MM-DD-YYY格式接受日期 String regex = "^T.*e"; //创建一个Pattern对象 Pattern pattern = Pattern.compile(regex, Pattern.UNIX_LINES); //创建一个Matcher对象 Matcher matcher = pattern.matcher(input); int count = 0; while(matcher.find()) { count++; System.out.println(matcher.group()); } System.out.println("Number of matches: "+count); } }
输出结果
This is the first line This is the second line This is the third line Number of matches: 1
而在正常模式下,\ r被视为回车。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class LTERAL_Example { public static void main(String[] args) { String input = "This is the first line\r" + "This is the second line\r" + "This is the third line\r"; //正则表达式以MM-DD-YYY格式接受日期 String regex = "^T.*e"; //创建一个Pattern对象 Pattern pattern = Pattern.compile(regex); //创建一个Matcher对象 Matcher matcher = pattern.matcher(input); int count = 0; while(matcher.find()) { count++; System.out.println(matcher.group()); } System.out.println("Number of matches: "+count); } }
输出结果
This is the first line Number of matches: 1