嗨,我是java正则表达式的新手,我有下面的字符串第一个月我想只打印“333”,它是附加了主。输出应该是333。有人能帮我写这个正则表达式吗?基本上代码应该打印“主”和下一个“_"之间的值。这里是333,但值可能是任何数量的字符,长度不限于3。
vx6bjr1n1#
您可以使用以下正则表达式:(?<=MASTER)[0-9]+(?=\_).我们正在查找介于MASTER和_之间的所有内容:
(?<=MASTER)[0-9]+(?=\_)
MASTER
_
(?<=MASTER)
(?=\_)
在regex101.com上试用
vmdwslir2#
你可以做MASTER(\\d+)_
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 }
2条答案
按热度按时间vx6bjr1n1#
您可以使用以下正则表达式:
(?<=MASTER)[0-9]+(?=\_)
.我们正在查找介于
MASTER
和_
之间的所有内容:MASTER
之后的所有内容:(?<=MASTER)
_
之前的所有内容:(?=\_)
在regex101.com上试用
vmdwslir2#
你可以做
MASTER(\\d+)_