gpt4 book ai didi

java - 为什么这个正则表达式会失败?

转载 作者:行者123 更新时间:2023-11-30 05:04:29 27 4
gpt4 key购买 nike

我有一个 PCL 文件,用 Notepad++ 打开它来查看源代码(使用 PCL Viewer 我可以看到最终结果,但我还需要查看源代码)。

enter image description here

请参阅实验室编号和其余字符。 我能够使用此正则表达式提取实验室编号及其代码:

private static String PATTERN_LABNUMBER = "Lab Number[\\W\\D]*(\\d*)";

它给了我:

0092616281

我现在想要提取报告日期,并使用此正则表达式(经过多次其他尝试):

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;
}

最佳答案

这里是完成你想要的代码..

       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));
}

关于java - 为什么这个正则表达式会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5591731/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com