Java StringUtils或任何库类方法来保留分隔符
我有一根绳子“role1@role2@role3@role4$arole“用分隔符@和$分隔。我使用了下面的java代码Java StringUtils或任何库类方法来保留分隔符,java,regex,Java,Regex,我有一根绳子“role1@role2@role3@role4$arole“用分隔符@和$分隔。我使用了下面的java代码 String str = "role1@role2@role3@role4$arole"; String[] values = StringUtils.splitPreserveAllTokens(str, "\\@\\$"); for (String value : values) { System.out.prin
String str = "role1@role2@role3@role4$arole";
String[] values = StringUtils.splitPreserveAllTokens(str, "\\@\\$");
for (String value : values) {
System.out.println(value);
}
结果呢
role1
role2
role3
role4
arole
但我的要求是在结果中保留分隔符。因此,结果必须符合要求
role1
@role2
@role3
@role4
$arole
我分析了ApacheCommonsStringUtils方法来实现这一点,但没有找到任何线索
任何库类都可以获得上述预期结果吗?您可以使用具有正向前瞻性的简单的
拆分:
String str = "role1@role2@role3@role4$arole";
String[] res = str.split("(?=[@$])");
System.out.println(Arrays.toString(res));
// => [role1, @role2, @role3, @role4, $arole]
见
(?=[@$])
正则表达式匹配字符串中后跟@
或$
符号的任何位置(请注意,$
不必在[…]
字符类中转义)