如何使用RegEx

时间:2017-03-02 05:57:19

标签: java regex

目前我正在使用java中的cv解析器。我希望获得出生日期详细信息,因此我为文本开发了RegEx

Date Of Birth xx-xx-xxxx

作为

(?<=Date (of|Of) Birth)\\s*(.*)

它运作正常。

但如果文字是&#34;出生日期:xx-xx-xxx&#34;

,我就没有得到价值

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

(date of birth)[^\d]*((?:\d{2}-){2}\d{4})

Explanation

  1. (date of birth)将出生日期视为不区分大小写
  2. [^\d]*这将允许在扫描时忽略除数字之外的任何内容 日期格式。它可以让你有更好的控制力来覆盖更多不仅仅是两个案例。
  3. ((?:\d{2}-){2}\d{4})符合日期格式

  4. 不要忘记在代码中使用不区分大小写的选项(请参阅 样品)

  5. 示例代码:

    final String regex = "(date of birth)[^\\d]*((?:\\d{2}-){2}\\d{4})";
    final String string = "Date Of Birth 12-03-1995\n"
         + "Date of Birth: 02-01-2002";
    
    final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
    final Matcher matcher = pattern.matcher(string);
    
    while (matcher.find()) {
        System.out.println("DOB Label: " + matcher.group(1));
        System.out.println("DOB Value: " + matcher.group(2));
    }