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+倍(.+)
^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+私钥------.*)-你是说这样的帮助吗?还是很棒,效果很好,谢谢!