,我将无法获得价值
目前我正在Java中的CV解析器。
Date Of Birth xx-xx-xxxx
AS
(?<=Date (of|Of) Birth)\s*(.*)
而且效果很好。
但是,如果文本为"出生日期:xx-xx-xxx"
您可以尝试以下方法:
(date of birth)[^d]*((?:d{2}-){2}d{4})
解释
-
(date of birth)
匹配出生日期,因为病例不敏感 -
[^d]*
这将允许忽略数字以外的任何东西日期格式。它将让您拥有更好的控制权,不仅仅是两个案例。 ((?:d{2}-){2}d{4})
它与日期格式匹配不要忘记在您的代码中使用使用情况不敏感的选项(请参阅样本)
示例代码:
final String regex = "(date of birth)[^\d]*((?:\d{2}-){2}\d{4})";
final String string = "Date Of Birth 12-03-1995n"
+ "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));
}