LDA*_*ams 6 java regex split matcher
我试图使用一个简单的拆分来分解以下字符串:00-00000
我的表达是: ^([0-9][0-9])(-)([0-9])([0-9])([0-9])([0-9])([0-9])
我的用法是:
String s = "00-00000";
String pattern = "^([0-9][0-9])(-)([0-9])([0-9])([0-9])([0-9])([0-9])";
String[] parts = s.split(pattern);
Run Code Online (Sandbox Code Playgroud)
如果我使用Pattern和Matcher类,我可以看到我的模式匹配,匹配器告诉我我的groupCount是7这是正确的.但是,当我尝试分裂他们时,我没有运气.
String.split不使用捕获组作为结果.它找到任何匹配并将其用作分隔符.因此,结果String []是正则表达式匹配之间的子串.因为正则表达式匹配整个字符串,并且整个字符串作为分隔符,所以没有其他任何东西留下,所以它返回一个空数组.
如果你想使用正则表达式捕获组,你将不得不使用Matcher.group(),String.split()将不会.
我不能确定,但我认为你想要做的是将每个匹配的组放入一个数组中。
Matcher matcher = Pattern.compile(pattern).matcher();
if (matcher.matches()) {
String s[] = new String[matcher.groupCount()) {
for (int i=0;i<matches.groupCount();i++) {
s[i] = matcher.group(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1792 次 |
最近记录: |