我想分割一个字符串:“value.value2.key:somethink.two” 我想在数组中获取元素:
所以我需要正则表达式。在字符和"\\."
之前按":"
拆分
谢谢你的帮助。
答案 0 :(得分:4)
使用积极的先行断言。
String s = "value.value2.key: somethink.two";
String parts[] = s.split("\\.(?=.*?:)");
System.out.println(Arrays.toString(parts));
(?=...)
称为积极前瞻断言。 (?=.*?:)
正向前瞻声明匹配必须后跟.*?
,零个或多个字符以及冒号。因此它匹配冒号前的所有点,但不匹配冒号后的那些点,因为最后一个点后面没有冒号。
<强>输出:强>
[value, value2, key: somethink.two]