-3
目前我工作在java.I CV分析器得到文本值想要得到的出生日期的細節,所以我開發的正則表達式的文本如何使用正則表達式
Date Of Birth xx-xx-xxxx
由於
(?<=Date (of|Of) Birth)\\s*(.*)
它工作正常。
但我沒有得到值,如果文字是 「出生日期:XX-XX-XXX」
目前我工作在java.I CV分析器得到文本值想要得到的出生日期的細節,所以我開發的正則表達式的文本如何使用正則表達式
Date Of Birth xx-xx-xxxx
由於
(?<=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-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));
}
你有什麼問題? – shmosel
如果文本是「出生日期:xx-xx-xxxx」,那麼得到出生日期的正則表達式是什麼?我沒有用冒號(:)得到該值。以上正則表達式的工作原理如下:「出生日期xx-xx-xxxx」(帶出冒號:) – user999
呃,你在正則表達式中沒有冒號! –