我有这样的字符串
"abc:def"
Run Code Online (Sandbox Code Playgroud)
我需要检查它是否匹配.如果是,我想应用正则表达式并检索它的第一部分("abc").
这是我的尝试:
Pattern pattern = Pattern.compile(".*:.*");
String name = "abc:def"
Matcher matcher = pattern.matcher(name);
if (matcher.find()) {
String group = matcher.group(1);
System.out.println(group);
}
Run Code Online (Sandbox Code Playgroud)
它给了我
线程"main"中的异常java.lang.IndexOutOfBoundsException:无组1
您需要在正则表达式中添加捕获组.这是通过将您想要捕获的内容放在括号中来完成的:
Pattern pattern = Pattern.compile("(.*):.*"); // <-- parentheses here
String name = "abc:def";
Matcher matcher = pattern.matcher(name);
if (matcher.find()) {
String group = matcher.group(1);
System.out.println(group); // prints "abc"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |