我想找到一种将字符串拆分成"-“的方法,只适用于某些情况。
如果前面的字符是字母(小的还是大写的),如果它不是字符串中的第一个字符,我想分拆。以下字符必须是数字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-)
我无法用String.split(regex)正确地做这件事。我找到的唯一解决方案是解析整个字符串并查找每个字符。对此有判罚吗?
谢谢你的帮助。
发布于 2013-10-01 22:09:44
尝试用以下正则表达式拆分字符串:
"(?<=[A-Za-z])-(?=\\d+)"
添加一个测试类:
@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)));
}
}
产出:
-11 => [-11]
v-11 => [v, 11]
v- => [v-]
-2-11 => [-2-11]
v-11- => [v, 11-]
-v-11- => [-v, 11-]
https://stackoverflow.com/questions/19126758
复制相似问题