gpt4 book ai didi

Java 正则表达式 find() 与 match() 用法

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

已编辑的问题我想从一些字符串中提取日期和时间。这是一个例子。所有事件字符串均以 [0r(1)2[000p[040qe1w3h162[020t*] 开头。当遇到新的字符串时,它应该解析最后一个字符串集并获取一些数据。下面是一个示例事件

    [0r(1)2[000p[040qe1w3h162[020t*881*11/11/2010*12:24*
*EVENT STARTED*
[020t 12:24:06 SMARTCARD ENTERED
11\11\10 12:24 10390011
123456789098765432 6598
INVALID TRANSACTION, PLEASE CONTACT
ADMIN FOR ADVICE
-----------------------------------
[020t 12:24:52 FILE STACKED
[020t 12:24:59 FILE PRESENTED 0,5,0,0
[020t 12:25:03 FILE TAKEN
11\11\10 12:25 10390011
123456789098765432 6599
WITHDRAW FILES10.00
[000p[040q(1 *6599*1*E*000050000,M-00,R-10200
-----------------------------------
[020t 12:25:34 SMARTCARD TAKEN
[020t 12:25:38 EVENT ENDED

我想提取日期和时间作为每项 Activity 的一个变量。例如

Activity= EVENT STARTED
Activity time/date= 11/11/2010 12:24
Activity= SmartCard inserted
Activity time/date= 12:24:06

我尝试了以下方法

/*
String sample = "[0r(1)2[000p[040qe1w3h162[020t*882*11/11/2010*12:26*";
String regex = "(?x) ^([0r(1)2[000p[040qe1w3h162[020t*):// ([^/:]+) (?:(\\d+))?";
Matcher m = Pattern.compile(regex).matcher(sample);
if(m.find())
{
String ignore = m.group();
String date = m.group(1);
String time = m.group(2);
System.out.println( date + " " + time);
}
*/
//this section isn't useful in light of the edit to the question

最佳答案

使用String.split(String regex) :

String line = "[0r(1)2[000p[040qe1w3h162[020t*882*11/11/2010*12:26*";        
String[] parts = line.split("\\*");
String date = parts[2];
String time = parts[3];
System.out.println("date=" + date + ", time=" + time);

输出:

date=11/11/2010, time=12:26

关于Java 正则表达式 find() 与 match() 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586561/

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