用示例对Java中的UNIX_LINES字段进行模式化

该标志启用Unix行模式。在Unix行模式下,仅将'\ n'用作行终止符,而将'\ r'视为文字字符。

例子1 

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被视为回车。

例子2

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