Regex匹配已拆分为多行的哈希

本文关键字:哈希 拆分 Regex | 更新日期: 2024-10-21 05:59:40

我想匹配一个由作者用词包装并通过多行接收的哈希。

示例:

SHA256:AB7623576BC87DBAB76235776BC87DBAB 76235776BC 87
DBAB76235776BC87DB

已收到。我常用的正则表达式来匹配像这样的sha256散列,当然是:[0-9A-Fa-f]{64}

但这并不奏效。我想在搜索这个匹配时不修改文件,关于如何在不删除换行符的情况下匹配拆分哈希,有什么想法吗?

我想要一个regex,它基本上说"寻找64个连续的十六进制值,但允许在混合中有一个或多个换行符,kthx"

提前谢谢。C#是一种语言。

Regex匹配已拆分为多行的哈希

试试这个:

'b(?:[a-fA-F0-9]'s*){64}'b

它允许任何类型的空白,而不仅仅是行分隔符。如果它真的只允许行分隔符,你可以使用这个:

'b(?:[a-fA-F0-9]['r'n]*){64}'b

这还将包括数字后面的行分隔符(如果有),以及后面跟着一个单词字符。你可以这样防止:

'b(?:[a-fA-F0-9]['r'n]*){63}[a-fA-F0-9]'b

更改正则表达式以包含换行符:

[A-Z0-9a-z''r''n ]{64, }

您可以修改上限以包括对换行次数的限制
在这种情况下,您需要记住换行符可能有2个符号长,这取决于机器文化和操作系统。

1换行-->66个字符
2个换行符-->68个字符
随心所欲地继续。

附带说明。在分析文件时,你通常会让它休息。所有的修改都是用你读取文件的变量进行的。这就是为什么我认为保留换行符没有意义。