按另一个字符前面的字符拆分字符串
Split string by character that is in front of another character
我想拆分一个字符串:"value.value2.key: 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]
我想拆分一个字符串:"value.value2.key: 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]