除了包含加密行的行外,我一直试图创建一个匹配文件中所有内容的regex。
文件示例:
random text0
set private-key "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgesdfsfsf242asdasdasdasdasdasdaDDADADADASS2
sdfsfdsfsfs342424r2aa423412edqwdadawdawa1awdsadaAAAA
242342342da==
set private-key "-----END ENCRYPTED PRIVATE KEY-----
random text1
random text2使用regex,我想匹配所有随机文本,除了显示加密行的文本块。
我构建了以下正则表达式,但它似乎不起作用:
^(?!.*(\bset\s+private-key\s+"-----BEGIN\s+ENCRYPTED PRIVATE\s+KEY-----\b.*\bset private-key\s+"-----END\s+ENCRYPTED\s+PRIVATE\s+KEY-----\b)).*--编辑-编辑
文件示例2:
test12
test22
test44
set private-key "-----BEGIN ENCRYPTED PRIVATE KEY-----
MasdasdasdasdasEq1XnGfVONkCAggA
KpYsdfdasdasdasdafvpFFoUanRXimMv+d9n6YiahiJ4xqPnMOelMGE dC8FRR92rpsVuZiLtgGP5A==
-----END ENCRYPTED PRIVATE KEY-----"
test2
test3发布于 2021-03-10 23:13:21
一个选项是匹配加密的部分,并捕获捕获组中的其他行。
^set\s+private-key\s+"-----BEGIN\s+ENCRYPTED PRIVATE\s+KEY-----(?:\r?\n(?!set private-key).*)*\r?\nset\s+private-key.*|(.+)模式匹配:
^开始set\s+private-key\s+"-----BEGIN\s+ENCRYPTED PRIVATE\s+KEY-----匹配第一行(?:非捕获群\r?\n(?!set private-key).*)*匹配所有不以set private-key开头的行\r?\n匹配换行符set\s+private-key.*匹配以set private-key开头的行|或(.+)匹配1+乘以组1中的任何字符看一个regex演示。
或匹配第1组中的多行:
^set\s+private-key\s+"-----BEGIN\s+ENCRYPTED PRIVATE\s+KEY-----(?:\r?\n(?!set private-key).*)*\r?\nset\s+private-key.*|(.+(?:\r?\n(?!set\s+private-key).*)*)发布于 2021-03-10 23:48:31
https://stackoverflow.com/questions/66574190
复制相似问题