Regex 正则表达式匹配除加密行以外的所有内容

Regex 正则表达式匹配除加密行以外的所有内容,regex,Regex,我一直在尝试创建一个正则表达式,它匹配文件中的所有内容,除了包含加密行的行 文件示例: random text0 set private-key "-----BEGIN ENCRYPTED PRIVATE KEY----- MIIFHDBOBgesdfsfsf242asdasdasdasdasdasdaDDADADADASS2 sdfsfdsfsfs342424r2aa423412edqwdadawdawa1awdsadaAAAA 242342342da== set privat

我一直在尝试创建一个正则表达式,它匹配文件中的所有内容,除了包含加密行的行

文件示例:

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

一个选项是匹配加密部分,并捕获捕获组中的其他行

^set\s+private-key\s+"-----BEGIN\s+ENCRYPTED PRIVATE\s+KEY-----(?:\r?\n(?!set private-key).*)*\r?\nset\s+private-key.*|(.+)
模式匹配:

  • ^
    字符串的开头
  • set\s+私钥\s+”----BEGIN\s+加密私钥\s+密钥---
    匹配第一行
  • (?:
    非捕获组
    • \r?\n(?!设置私钥)。*)*
      匹配所有不以
      设置私钥开头的行
  • \r?\n
    匹配换行符
  • set\s+私钥。*
    匹配以
    set private key开头的行
  • |
  • (.+)
    匹配组1中任何字符的1+倍
见a

或匹配组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).*)*)

这符合您的目的:

^(?! \w+=*$).*

请参阅。

您使用的语言是什么?使用
g
flag:
let result=text.replace(/\bset private key\s+“-+BEGIN ENCRYPTED private key-+[\s\s]*?\bset private key\s+“-+END ENCRYPTED private key-+[\r\n]*/g.”)进行正则表达式搜索和替换可能更容易删除您不想要的内容
您好,再次感谢您的帮助,我试图自定义您提供的与“文件示例2”匹配的正则表达式,但未成功,您能提供帮助吗?我已为新示例自定义了您的正则表达式,但似乎无法使其排除加密:^set\s+私钥\s+”----开始\s+加密私钥\s+密钥-----(?:\r?\n(?!设置私钥)。*)*\r?\n------END\s+加密的\s+私钥------.*。(。+(?:\r?\n(?)----END\s+加密的\s+私钥------.*)-你是说这样的帮助吗?还是很棒,效果很好,谢谢!