gpt4 book ai didi

Java - 正则表达式问题重叠数据

转载 作者:行者123 更新时间:2023-12-01 12:17:53 25 4
gpt4 key购买 nike

“01:23:45 计算机科学太棒了!10:11:59 我喜欢冰淇淋。”是这个正则表达式应该匹配的内容。

这是我正在使用的正则表达式:

“(\d\d:\d\d:\d\d)\s(.+)\s”虽然它不起作用......有人可以帮助我吗。

让我具体说明我需要做什么

import java.util.regex.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Friendly {
public static void main(String[] arguments) throws IOException{
String input = new BufferedReader(new InputStreamReader(System.in)).readLine();
Pattern regex = Pattern.compile("(\\d\\d:\\d\\d:\\d\\d)\\s(.+)(?=\\s|$)");
Matcher match;
boolean first = true;
while ((match = regex.matcher(input)).find()){
if (!first)
System.out.println();
else first = !first;
System.out.print(match.group(1) + " ");
String[] timestamp = match.group(1).split(":");
int hour = Integer.parseInt(timestamp[0]) * 9;
int minutes = Integer.parseInt(timestamp[1]) * 3 + Integer.parseInt(timestamp[2]);
boolean isOdd = false;
String[] letters = match.group(2).split("");
for (int index = 0; index < letters.length; index++){
String letter = letters[index];
if (letter != " " && letter.length() > 0){
System.out.printf("0x%02X" + (index == letters.length - 1 ? "" : " "), letter.charAt(0)^(isOdd ? minutes : hour) & 0xFF);
isOdd = !isOdd;
}
}
input = input.substring(input.indexOf(match.group(0)) + 1, input.length());
}
}
}

在这段代码中,我试图解析“01:23:45 计算机科学太棒了!”然后得到“10:11:59 我喜欢冰淇淋。”

抱歉,如果还不够清楚。

最佳答案

(\d\d:\d\d:\d\d(?:(?!\d\d:\d\d:\d\d).)+)

试试这个。查看演示。

http://regex101.com/r/tF5fT5/42

关于Java - 正则表达式问题重叠数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879447/

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