我想匹配一个由作者自己包装的哈希,并通过多行接收。
例:
SHA256:AB76235776BC87DBAB76235776BC87DBAB76235776BC87
DBAB76235776BC87DB
已收到。我通常的正则表达式匹配像这样的sha256哈希当然是:[0-9A-Fa-f] {64}
但这不起作用。我想在搜索此匹配时保留文件未经修改,有关如何匹配拆分哈希而不删除换行符的任何想法?
我希望有一个正则表达式,基本上说'查找64个连续十六进制值,但允许混合中的一个或多个换行符,kthx'
提前致谢。 C#是语言。
答案 0 :(得分:2)
试试这个:
\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
答案 1 :(得分:1)
更改正则表达式以包含换行符:
[A-Z0-9a-z\\r\\n ]{64, }
您可以修改上限以包含对换行符数量的限制 在这种情况下,您需要记住,换行符可以是2个符号长,具体取决于机器文化和操作系统。
1个换行符 - > 66个字符 2个换行符 - > 68个字符 尽可能多地继续。
旁注。解析文件时,通常会让它休息。您使用读入文件的变量进行所有修改。这就是为什么我没有看到保持线路突破的原因。