dba*_*baq 2 java regex string split scala
我想找到一种方法,仅在某些情况下将字符串拆分为" - ".
如果前一个字符是一个字母(小字母或大写字母),并且它不是字符串中的第一个字符,我想分开.以下字符必须是数字[0-9].字符串中没有空格.
-11 => List(-11)
v-11 => List(v,11)
v- => List(v-)
-2-11 => List(-2-11)
v-11- => List(v,11-)
-v-11- => List(-v,11-)
Run Code Online (Sandbox Code Playgroud)
我无法使用String.split(正则表达式)正确执行此操作.我找到的唯一解决方案是解析整个String并查找每个字符.那有正则表达式吗?
谢谢你的帮助.
Ken*_*ent 10
尝试使用此正则表达式拆分字符串:
"(?<=[A-Za-z])-(?=\\d+)"
Run Code Online (Sandbox Code Playgroud)
添加测试类:
@Test
public void atest() {
String re = "(?<=[A-Za-z])-(?=\\d+)";
String[] ss = new String[] { "-11", "v-11", "v-", "-2-11", "v-11-", "-v-11-" };
for (String s : ss) {
System.out.println(s + " => " + Arrays.toString(s.split(re)));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
-11 => [-11]
v-11 => [v, 11]
v- => [v-]
-2-11 => [-2-11]
v-11- => [v, 11-]
-v-11- => [-v, 11-]
Run Code Online (Sandbox Code Playgroud)