Poc*_*id2 5 java regex exception
我在我的项目中将此作为 UnitTest 运行
public class RadioTest {
private static Pattern tier;
private static Pattern frequency;
private static Pattern state;
static {
tier = Pattern.compile("Tier: \\d");
frequency = Pattern.compile("Frequency: \\d{3}");
state = Pattern.compile("State: (OFF|ON)");
}
@Test
public void test() {
String title = "Tier: 2";
String title2 = "Frequency: 135";
String title3 = "State: ON";
assertTrue(tier.matcher(title).matches());
assertTrue(frequency.matcher(title2).matches());
assertTrue(state.matcher(title3).matches());
Matcher m = tier.matcher(title);
System.out.println(m.find());
System.out.println(m.group(1));
}
}
Run Code Online (Sandbox Code Playgroud)
但是我遇到了一个错误,IndexOutOfBoundsException: No group 1
我知道这与 有关m.group(1),但是有什么问题呢?在控制台中,我也true从m.find(). 我搜索了如何使用正则表达式,但它显示这样做。
Pattern.compile("Tier: \\d");
Run Code Online (Sandbox Code Playgroud)
未定义组,因此此表达式匹配,但您无法提取组。你可能想要这样做:
Pattern.compile("Tier: (\\d)");
Run Code Online (Sandbox Code Playgroud)
也适用于您的其他表达。您需要()将要提取为组的部分括起来。
| 归档时间: |
|
| 查看次数: |
5750 次 |
| 最近记录: |