我有一个PCL文件并用Notepad ++打开它来查看源代码(使用PCL Viewer我看到了最终结果,但我也需要查看源代码)。
请参阅实验室编号和其他字符。 我能够使用此正则表达式提取实验室编号及其代码:
private static String PATTERN_LABNUMBER = "Lab Number[\\W\\D]*(\\d*)";
它给了我:
0092616281
我现在想要提取Date Reported并使用这个正则表达式(在经过很多其他尝试之后):
private static String PATTERN_DATE_REPORTED =
"Date Reported[\\W\\D]*(\\d\\d/\\d\\d/\\d\\d\\d\\d \\d\\d:\\d\\d)";
但它在PCL文件中找不到它。
我也尝试过:
private static String PATTERN_DATE_REPORTED =
"Date Reported[\\W\\D]*([0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2})";
但同样没有找到结果...... 你看到我在最后一个正则表达式中遗漏了什么吗?
非常感谢!
更新:
我使用此java代码提取实验室编号和报告日期:
public String extractWithRegEx(String regextype, String input) {
String matchedString = null;
if (regextype != null && input != null) {
Matcher matcher = Pattern.compile(regextype).matcher(input);
if (matcher.find()) {
System.out.println("Matcher found for regextype "+regextype);
matchedString = matcher.group(0);
if (matcher.groupCount() > 0) {
matchedString = matcher.group(1);
}
}
}
return matchedString;
}
答案 0 :(得分:2)
这是完成你想要的代码..
Pattern pattern = Pattern.compile("Date Reported.*(\\d{2}/\\d{4} \\d{2}:\\d{2})$", Pattern.MULTILINE);
String st = "date dfdsfsd fgfd gdfgfdgdf gdfgdfg gdfgdf 3232/22/2010 23:34\n"+
"dsadsadasDate Reported gdfgfd gdfgfdgdf gdfgdfg gdfgdf 3232/22/2010 23:34";
Matcher matcher = pattern.matcher(st);
while (matcher.find()) {
System.out.println(matcher.group(1));
}