Sau*_*mar 0 java regex base64 decode
我有一个图像数据,我需要从中删除以下子字符串
data:image/jpeg;base64,
Run Code Online (Sandbox Code Playgroud)
从字符串
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD......
data:image/png;base64......
data:image/;base64
Run Code Online (Sandbox Code Playgroud)
然后我想做类似以下的事情
imageData = imageData.replace("regex", "");
return Base64.decodeBase64(imageData.getBytes());
Run Code Online (Sandbox Code Playgroud)
我想首先知道正则表达式,也想知道是否调用
imageData.getBytes()
Run Code Online (Sandbox Code Playgroud)
会不会工作......
.replace(regex,repl)将正则表达式视为"文字"(不允许使用" ^"来表示行的开头等) - 尝试.replaceFirst(regex,repl)改为除了验证/处理 - 最终应该是这样的:
String imageData = "data:image/jpeg;base64,SGVsbG8sIHdvcmxkIQ==";
imageData = imageData.replaceFirst("^data:image/[^;]*;base64,?","");
byte[] bytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(imageData);
System.out.println(new String(bytes));
Run Code Online (Sandbox Code Playgroud)
输出:
Hello, world!
Run Code Online (Sandbox Code Playgroud)