【问题标题】:RegEx to remove key and certificate headers and footers [duplicate]RegEx 删除密钥和证书页眉和页脚 [重复]
【发布时间】:2018-03-13 21:36:51
【问题描述】:

我需要删除密钥和证书文件的页眉和页脚(以及在数据中找到的任何 LF)。是的,我可以对所有页眉和页脚使用 String.Replace,但可以使用 RegEx 在一行或两行中完成。我的问题是我对 RegEx 语法一无所知。谁能告诉我查找标题的搜索模式(-----BEGIN some variable text-----)并用空字符串替换它们?注意页脚都以 -----END 开头。

【问题讨论】:

标签: c# regex certificate


【解决方案1】:
using System;
using System.Text.RegularExpressions;

namespace TestRegex
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            string begin = "-----BEGIN some variable text-----";
            string end = "-----END";

            Console.WriteLine(Regex.Replace(begin, "-----BEGIN .*-----", ""));
            Console.WriteLine(Regex.Replace(end, "-----END.*", ""));
            Console.ReadLine();
        }
    }
}

【讨论】:

  • 感谢您的帮助。该字符串实际上以“-----BEGIN ENCRYPTED PRIVATE KEY-----”开头,后跟大量加密数据,然后以“-----END ENCRYPTED PRIVATE KEY-----”结尾。答案中的第一行替换行会清除整个字符串。我猜它正在替换第一个找到的字符串和最后一组破折号之间的所有内容。
  • 是的,它替换了整个字符串。您正在寻找的结果是什么?您要删除 ------BEGIN 和 ------ 之间的变量文本,还是保留变量文本并删除破折号和 BEGIN 关键字?
  • “ENCRYPTED PRIVATE KEY”一词因您拥有的密钥或证书类型而异。我想要一个可以删除页眉和页脚的表达式,而不管该文本如何。我在重复问题的答案中找到了答案。
  • 字符串中间 = Regex.Replace(contents, "-----.*?-----", string.Empty, RegexOptions.Singleline);行得通。
  • 其中“contents”是我的密钥文件的全部内容。
猜你喜欢
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 2012-01-03
  • 2015-10-01
  • 2018-07-06
相关资源
最近更新 更多