目前我正在使用java中的cv解析器。我希望获得出生日期详细信息,因此我为文本开发了RegEx
Date Of Birth xx-xx-xxxx
作为
(?<=Date (of|Of) Birth)\\s*(.*)
它运作正常。
但如果文字是&#34;出生日期:xx-xx-xxx&#34;
,我就没有得到价值答案 0 :(得分:2)
你可以试试这个:
(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-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));
}