为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中过滤出 UUId 编号

从字符串中过滤出 UUId 编号

郎朗坤 2023-08-04 15:45:28
我想仅将具有 UUID 编号的字符串过滤到新字符串中,例如:02bfa116-c834-4896-b825-e8f1299319f9,8.1.0,2888F244914F75CD68DC70A11B71BF0420F,panos预期:获取一个包含此值“02bfa116-c834-4896-b825-e8f1299319f9”的新字符串到目前为止我已经尝试过:final String regex = "[a-f0-9]{8}(-[a-f0-9]{4}){4}[a-f0-9]{8}";        final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);        for(int i=0;i<arr.length;i++){            Matcher matcher = pattern.matcher(arr[i]);            contentCSVStr[i] = matcher.group();        }其中数组内的每个字符串都可以采用我在上面示例中给出的格式。当我运行这段代码时我得到java.lang.IllegalStateException: No match found我缺少什么?
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

您忘记了拨打 的电话Matcher.find

将您的代码更改为:

final String regex = "[a-f0-9]{8}(-[a-f0-9]{4}){4}[a-f0-9]{8}";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);

for(int i=0;i<args.length;i++){

    Matcher matcher = pattern.matcher(args[i]);

    matcher.find(); // <- This line needed to be added

    contentCSVStr[i] = matcher.group();

}

并且它会正确提取 UUID。


group返回上一个匹配的结果,但是在您调用之前find还没有发生任何匹配,因此它没有可返回的结果。


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信