Java替换 - 多种选择

时间:2015-10-30 08:33:09

标签: java regex

我需要创建一个单一的线性正则表达式来对来自应用程序的作业名称执行替换。

例如:

Job names                  Substituted name
---------                  -----------
PART:CP21_aserdh.2317_1    CP21
PART:XY4_gsods.2218_1      XY4
JOB:ES2                    ES2
JOB:AP50                   AP50

我尝试了一些没有成功的正则表达式

(?:(PART:(.*)_.*_)|(JOB:(.*)))
(PART:(.*)|JOB:(.*)_+)
(?:PART|JOB)[:](.*)[_]?

2 个答案:

答案 0 :(得分:2)

对于您提供的简单示例,这将起作用:

str.replaceAll(".*:([^_]+).*", "$1")

答案 1 :(得分:1)

您可以使用:

str = str.replaceAll("\\b(?:PART|JOB):([A-Z0-9]+).*", "$1");

RegEx Demo