gpt4 book ai didi

Java和Regex,获取匹配的子字符串

转载 作者:行者123 更新时间:2023-12-01 23:57:15 25 4
gpt4 key购买 nike

我想匹配以下模式:

[0-9]*-[0-9]*-[BL]

并将模式应用到该字符串:

123-456-L-234

应该变成

123-456-L.

这是我的代码:

HelperRegex{
..
final static Pattern KEY = Pattern.compile("\\d*-\\d*-[BL]");

public static String matchKey(String key) {
return KEY.matcher(key).toMatchResult().group(0);
}

朱尼特:

@Test
public final void testMatchKey() {
Assert.assertEquals("453-04430-B", HelperRegex.matchKey("453-04430-B-1"));
}

抛出未找到匹配的异常。

我已经用“正则表达式教练”证明了我的正则表达式,它似乎没有损坏,并且匹配所有测试字符串

enter image description here

最佳答案

别介意所有的复杂性。您只需要一行:

String match = input.replaceAll(".*?([0-9]*-[0-9]*-[BL])?.*", "$1");

如果未找到模式,这将产生一个空白字符串。

如果是我,我会内联它,甚至没有单独的方法。

关于Java和Regex,获取匹配的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15394686/

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