我想僅將具有 UUID 編號(hào)的字符串過(guò)濾到新字符串中,例如:02bfa116-c834-4896-b825-e8f1299319f9,8.1.0,2888F244914F75CD68DC70A11B71BF0420F,panos預(yù)期:獲取一個(gè)包含此值“02bfa116-c834-4896-b825-e8f1299319f9”的新字符串到目前為止我已經(jīng)嘗試過(guò):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(); }其中數(shù)組內(nèi)的每個(gè)字符串都可以采用我在上面示例中給出的格式。當(dāng)我運(yùn)行這段代碼時(shí)我得到j(luò)ava.lang.IllegalStateException: No match found我缺少什么?
1 回答

開心每一天1111
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
您忘記了撥打 的電話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();
}
并且它會(huì)正確提取 UUID。
group返回上一個(gè)匹配的結(jié)果,但是在您調(diào)用之前find還沒有發(fā)生任何匹配,因此它沒有可返回的結(jié)果。
添加回答
舉報(bào)
0/150
提交
取消