gpt4 book ai didi

Java正则表达式意外删除最后一个值

转载 作者:行者123 更新时间:2023-12-01 09:28:40 24 4
gpt4 key购买 nike

我有一个段落如下(这是一个示例段落 - 在我的其他示例中,单词和字母保持不变,只有数字发生变化):

blablabla

Reflux Table - Day1
Total Upright Supine Meal PostPr Cough
Duration of Period (d,hh: mm) 23:13 14:05 09:08 00:48 05:59 00:15
Number of Refluxes 56 56 0 1 32 1
Number of Long Refluxes>5 (min) 1 1 0 0 0 0
Duration of longest reflux (min) 5 5 0 0 4 1
Time pH <4 (min) 66 66 0 0 40 1
Fraction Time pH <4 (%) 4.8 0.0 11.3 3.6

some more text blablaotherStuff

我想摘录以下段落

Reflux Table - Day1 
Total Upright Supine Meal PostPr Cough
Duration of Period (d,hh: mm) 23:13 14:05 09:08 00:48 05:59 00:15
Number of Refluxes 56 56 0 1 32 1
Number of Long Refluxes>5 (min) 1 1 0 0 0 0
Duration of longest reflux (min) 5 5 0 0 4 1
Time pH <4 (min) 66 66 0 0 40 1
Fraction Time pH <4 (%) 4.8 0.0 11.3 3.6

为此,我有以下代码:

Pattern ReflDay1_pattern = Pattern.compile("Reflux Table - Day1 .*?Fraction Time[^\n]*",Pattern.DOTALL);
Matcher matcherReflDay1_pattern = ReflDay1_pattern.matcher(s);
ArrayList<String> ReflDay1_arr = new ArrayList<String>();

try {
while (matcherReflDay1_pattern.find()) {
ReflDay1_arr.add(matcherReflDay1_pattern.group(0));
System.out.println("matcherReflDay1_pattern.group(0)"+matcherReflDay1_pattern.group(0));
}
}

catch (Exception e) {
e.printStackTrace();
}

但是这个结果去掉了最后一个值,因此我失去了“3.6”。这发生在我尝试的任何段落中。我如何确保它被包含 - 它是正则表达式(我已经测试了正则表达式,它确实提取了应该提取的内容,包括值 3.6)?

Reflux Table - Day1 
Total Upright Supine Meal PostPr Cough
Duration of Period (d,hh: mm) 23:13 14:05 09:08 00:48 05:59 00:15
Number of Refluxes 56 56 0 1 32 1
Number of Long Refluxes>5 (min) 1 1 0 0 0 0
Duration of longest reflux (min) 5 5 0 0 4 1
Time pH <4 (min) 66 66 0 0 40 1
Fraction Time pH <4 (%) 4.8 0.0 11.3

最佳答案

我的猜测是,行结尾实际上是 "\r\n" (Windows),但 3.6 被写成 "\n 3.6" 或类似的内容。记事本会将其显示为位于同一行。

Pattern ReflDay1_pattern = Pattern.compile(
"Reflux Table - Day1 .*?Fraction Time[^\r\n]*\n[^\r\n]*", Pattern.DOTALL);

使用 \r 还可以防止该字符尾随字符串。

String g = matcherReflDay1_pattern.group(0).replaceAll("\r?\n", " ");

关于Java正则表达式意外删除最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39635434/

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