【发布时间】:2017-11-27 13:32:07
【问题描述】:
这个想法是使用 '=' 或 '==' 分隔符拆分 base64 编码的字符串。
源文本可能如下所示:
Zte+2RAEIEMU/2C6W6udzqkBKOM1Cp1R8tjbA17aAf0HZQ9NPpiJ7eWCA+r0Y00sRYFRwIMG/3IaOamst0WHNbB1QDZktNJxTIW4nYnA93Q=
Zte+2RAEIEMU/2C6W6udzqkBKOM1Cp1R8tjbA17aAf2yK8KmrbIGVD8vOyZj4uVg579ehXm9OrUsDebQ9C7OAg==
我尝试将(?<==) 用于 .split() 方法,但如您所知,它会留下 '=' 空字符串。在(?<=\b[=]) 的情况下 - 相同的问题,但在某些情况下删除了第二个“=”。
这个想法是写类似“要么使用单个'=',其前后包含除'='之外的任何字符,要么使用相同的条件使用双'=='。但是,这个没有成功。
【问题讨论】:
-
试试
={1,2}? -
请记住,base64 编码的字符串并不总是以 = 或 == 结尾。只有当字符串需要填充长度时,它们才会出现。为什么不使用换行符作为分隔符?您的源文本绝对看起来可以使用。
-
你也可以使用replaceAll:str.replaceAll("=", "")。编辑:固定方法,afaik replace 仅替换给定字符串的第一次出现。
-
尝试使用 =+ 一个或多个 = 符号
-
@SimoErkinheimo 你是完全正确的 - 我完全忘记了换行符作为分隔符。解决了我的问题,谢谢。
标签: java regex text split base64