具有匹配文本和特殊字符的Java正则表达式

a0zr77ik  于 2022-12-25  发布在  Java
关注(0)|答案(2)|浏览(121)

嗨,我是java正则表达式的新手,我有下面的字符串
第一个月
我想只打印“333”,它是附加了主。输出应该是333。有人能帮我写这个正则表达式吗?基本上代码应该打印“主”和下一个“_"之间的值。这里是333,但值可能是任何数量的字符,长度不限于3。

vx6bjr1n

vx6bjr1n1#

您可以使用以下正则表达式:(?<=MASTER)[0-9]+(?=\_).
我们正在查找介于MASTER_之间的所有内容:

      • 后备**:MASTER之后的所有内容:(?<=MASTER)
      • 前瞻**:_之前的所有内容:(?=\_)

regex101.com上试用

vmdwslir

vmdwslir2#

你可以做MASTER(\\d+)_

Pattern p = Pattern.compile("MASTER(\\d+)_");
Matcher m = p.matcher(" KBC_2022-12-20-2004_IDEAL333_MASTER333_2022-12-20-1804_SUCCESS");
if (m.find()) {
    System.out.println(m.group(1)); // 333
}
m = p.matcher(" KBC_2022-12-20-2004_IDEAL333_MASTER123_2022-12-20-1804_SUCCESS");
if (m.find()) {
    System.out.println(m.group(1)); // 123
}

相关问题