我想要分割的字符串的前面:“value.value2.key:somethink.two” ,我想在数组元素:分割字符串,它是在另一个字符
- “值“
- ”值2“
- ”键:somethink.two“
所以我需要的正则表达式它。字符前分割为"\\."
,":"
感谢您的帮助。
我想要分割的字符串的前面:“value.value2.key:somethink.two” ,我想在数组元素:分割字符串,它是在另一个字符
所以我需要的正则表达式它。字符前分割为"\\."
,":"
感谢您的帮助。
使用积极的前瞻断言。
String s = "value.value2.key: somethink.two";
String parts[] = s.split("\\.(?=.*?:)");
System.out.println(Arrays.toString(parts));
(?=...)
被称为正向超前断言。 (?=.*?:)
肯定前瞻断言匹配后必须跟着.*?
,零个或多个字符和一个冒号符号。因此它匹配冒号前的所有点,但不匹配冒号后的点,因为最后一个点后面没有冒号。
输出:
[value, value2, key: somethink.two]
从我也是upvote。有用。也许这位下来的选民是这样做的,因为嫉妒。 :) – muasif80 2015-03-13 14:29:28
非常感谢。你只知道该怎么写?我有问题“(?=。*?:)” – 2015-03-13 14:31:43
什么问题? – 2015-03-13 14:33:59
那你试试?为什么失败?你尝试了哪些其他用例,哪些失败了?为什么你需要正则表达式?你的代码在哪里?当你调试你的代码时发生了什么? – Kon 2015-03-13 14:25:32