从工具输出中解析base64 blob

时间:2014-10-11 22:10:08

标签: c# regex base64

我在从工具输出解析base64编码的blob时遇到问题。 我在c#中使用这个正则表达式: @“(?:[A-Za-z0-9 + /] {4})*(?:[A-Za-z0-9 + /] {2} == | [A-ZA-Z0-9 + /] {3} =)“

一切正常,直到我收到的blob看起来像跟随(它甚至没有'='。根据wiki base64字符串可以有0-2“=”符号到底/) 我不能在blob之前和之后使用字符串,因为它可以是多语言

  

配置计算机帐户...已成功配置   域[testauto.sof]中的[user-1009-1-]。供应数据是   成功保存到   [C:\用户\ USER1 \应用程序数据\本地\ TEMP \用户1009-1-.blob]。供应   string(2624l bytes):

     

ARAIAMzMzMzIAwAAAAAAAAAAAgABAAAAAQAAAAQAAgABAAAAAQAAAKADAAAIAAIAoAMAAAEQCADMzMzMkAMAAAAAAAAAAAIABAACAAgAAgAMAAIAFAAWABAAAgAcAB4AFAACABwAHgAYAAIA5pXFb5WfaEeEDMNZ4eUJVxwAAgAgAAIAJAACAAEAAADmlcVvlZ9oR4QMw1nh5QlXKAACACwAAgD8MQDgMAACADQAAgACAAAADwAAAAAAAAAPAAAAbQBpAHIAYQBnAGUAYQB1AHQAbwAuAHMAbwBmAAAAAAAQAAAAAAAAABAAAAB4AGkAcwBoAGUAbgBnAC0AMQAwADAAOQAtADEALQAAAHkAAAAAAAAAeQAAAF0APwAjAHkAWgBYADoAdwBgAGUANgB2AG8AJQBuAHkAIwBUAE4ALAAxAHUAOQBkAD4AdwA5AG8AaABgAHEAIwBhADYALABwAF0ALwBoAEgAIABqAHMATwA5AGwATgB5ADEAVQAhAE4ASwAiAEUAPQA8AGIAZQBAAC8ARgA1AGIAQAAiAG8AUgA6AGIAawAzAF4AVwBrACYATQA5AE8AdQBvAHYAZQA0AGMAKwBDAHMAUABrAGsAdQBAAF4AYAAgAFsAJQBgAGUAJwAuAG8AOwBBACgATQBuACIARgAlAG0ASwA1ADMAbQBJAHcAXQBkAAAAAAALAAAAAAAAAAoAAABNAEkAUgBBAEcARQBBAFUAVABPAA8AAAAAAAAADgAAAG0AaQByAGEAZwBlAGEAdQB0AG8ALgBzAG8AZgAPAAAAAAAAAA4AAABtAGkAcgBhAGcAZQBhAHUAdABvAC4AcwBvAGYABAAAAAEEAAAAAAAFFQAAAN0GKLrAxnxUyKGAThoAAAAAAAAAGgAAAFwAXABTAE8ARgAtAFEAQQAwADIALgBtAGkAcgBhAGcAZQBhAHUAdABvAC4AcwBvAGYAAAANAAAAAAAAAA0AAABcAFwAMQAwA C4AMgAzAC4ANwAyAC4AMgAAAAAADwAAAAAAAAAPAAAAbQBpAHIAYQBnAGUAYQB1AHQAbwAuAHMAbwBmAAAAAAAPAAAAAAAAAA8AAABtAGkAcgBhAGcAZQBhAHUAdABvAC4AcwBvAGYAAAAAABgAAAAAAAAAGAAAAEQAZQBmAGEAdQBsAHQALQBGAGkAcgBzAHQALQBTAGkAdABlAC0ATgBhAG0AZQAAABgAAAAAAAAAGAAAAEQAZQBmAGEAdQBsAHQALQBGAGkAcgBzAHQALQBTAGkAdABlAC0ATgBhAG0AZQAAAAAAAAAAAAAA

     

计算机帐户配置已成功完成。操作   成功完成。

任何人都可以帮我修复正则表达式吗? 这是我使用的正则表达式计算器: http://regex101.com/r/wP3kP9/1

1 个答案:

答案 0 :(得分:0)

以下内容应该可以成功运作:

^(?!$)(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$

regex101

根据我的理解,如果不存在=,那就是因为字符串长度是4的倍数。

我还使用^ ... $将其锚定,并使用m选项,因此只有你的base64字符串匹配。我添加了(?!$),因此空行不匹配(无法简单地将*更改为+,因为您可能希望匹配aa==等短字符串)。