gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:58:44 24 4
gpt4 key购买 nike

我一直在尝试制作一个匹配文件中所有内容的正则表达式,除了包含加密行的行。
文件示例:

random text0
set private-key "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgesdfsfsf242asdasdasdasdasdasdaDDADADADASS2
sdfsfdsfsfs342424r2aa423412edqwdadawdawa1awdsadaAAAA
242342342da==
set private-key "-----END ENCRYPTED PRIVATE KEY-----
random text1
random text2
使用正则表达式,我想匹配除显示加密行的文本块之外的所有随机文本。
我制作了以下正则表达式,但似乎不起作用:
^(?!.*(\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+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 demo .
    或匹配组 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).*)*)
    Regex demo

    关于正则表达式匹配除加密行以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66574190/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com