我需要帮助才能使用以下字符串中的正则表达式在 JAVA 中提取 2 个字符串:
"Batch job <jobid> <jobtype> success"
我需要取出jobid和job type。当我将字符串从 get() 方法放入 String 对象时,我得到<
替换为<
; 这是字面意思。
如何编写正则表达式以从我的字符串中提取 jobid 和 jobtype?字符串应该没有<>
.
谢谢你的帮助!
我需要帮助才能使用以下字符串中的正则表达式在 JAVA 中提取 2 个字符串:
"Batch job <jobid> <jobtype> success"
我需要取出jobid和job type。当我将字符串从 get() 方法放入 String 对象时,我得到<
替换为<
; 这是字面意思。
如何编写正则表达式以从我的字符串中提取 jobid 和 jobtype?字符串应该没有<>
.
谢谢你的帮助!
好吧,给我们一个样本并不能说明格式中可能存在什么差异。所以让我们假设它真的很严格:这两个字段总是被“批处理作业......成功”包围并用空格分隔。那么一个正则表达式可能如下所示:
Pattern pattern = Pattern.compile("Batch job (.*) (.*) success");
Matcher matcher = pattern.matcher(log);
if (matcher.matches()) {
String jobId = matcher.group(1);
String jobType = matcher.group(2);
//...
}
如果格式有更大的灵活性,那么您需要设计更精确的正则表达式。
尝试使用/<(.*?)>/
do ....
Pattern patt = Pattern.compile("/<(.*?)>/");
Matcher matc = patt.matcher("Batch job <jobid> <jobtype> success");
if (matc.matches()) {
String jobid = matc.group(1);
String jobtype = matc.group(2);
}
2个字符串jobid
andjobtype
将包含 and 之间的字符串<
(>
不包括<
and >
)