def regex = 'crt1234[a-z]_(\\w\\w)_DTS(.*)'
Pattern pattern = Pattern.compile(regex)
Matcher matcher = pattern.matcher("crt1234_DH_DTS")
matcher.findAll()
如何循环播放比赛?当我尝试以下操作时,它会抛出 IllegalStateEx
for(i in 1..<matcher.count)
group += matcher.group(i)
我可以使用以下代码连接组 matcher.findAll() { newGroup -> group += newGroup }
如果没有尝试匹配您正在经历的输入,对组方法的调用将始终失败。在调用
group()
方法之前,您需要实际尝试匹配。这可以通过在调用 find()
方法之前调用匹配器上的 group()
方法来完成。
这是在 Geeks for Geeks 上找到的示例(根据您的用例进行修改):
// Get the regex to be checked
String regex = "crt1234[a-z]?_(\\w\\w)_DTS(.*)";
// Create a pattern from regex
Pattern pattern
= Pattern.compile(regex);
// Get the String to be matched
String stringToBeMatched
= "crt1234_DH_DTS";
// Create a matcher for the input String
Matcher matcher
= pattern
.matcher(stringToBeMatched);
// Get the current matcher state
MatchResult result
= matcher.toMatchResult();
System.out.println("Current Matcher: "
+ result);
while (matcher.find()) {
// Get the group matched using group() method
System.out.println(matcher.group());
}