按字符拆分另一个字符前面的字符串

时间:2015-03-13 14:23:55

标签: java regex split

我想分割一个字符串:“value.value2.key:somethink.two” 我想在数组中获取元素:

  1. “值”
  2. “值2”
  3. “key:somethink.two”
  4. 所以我需要正则表达式。在字符和"\\."之前按":"拆分 谢谢你的帮助。

1 个答案:

答案 0 :(得分:4)

使用积极的先行断言。

String s = "value.value2.key: somethink.two";
String parts[] = s.split("\\.(?=.*?:)");
System.out.println(Arrays.toString(parts));

(?=...)称为积极前瞻断言。 (?=.*?:)正向前瞻声明匹配必须后跟.*?,零个或多个字符以及冒号。因此它匹配冒号前的所有点,但不匹配冒号后的那些点,因为最后一个点后面没有冒号。

<强>输出:

[value, value2, key: somethink.two]