使用正则表达式识别标题 [英] Heading identification with Regex

查看:108
本文介绍了使用正则表达式识别标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何使用一个或多个正则表达式识别具有不同数字标记样式的标题,假设有时文档之间的样式重叠.目标是提取每个文件中特定标题的所有子标题和数据,但这些文件没有标准化.正则表达式在这里是正确的方法吗?

我正在开发一个解析 .pdf 文件并查找特定部分的程序.一旦找到该部分,它就会找到该部分的所有子部分及其内容,并将其存储在 dictionary 中.我首先将整个 pdf 读入一个字符串,然后使用此函数定位标记"部分.

private string GetMarkingSection(string text){int startIndex = 0;int endIndex = 0;bool startIndexFound = false;正则表达式 rx = 新正则表达式(HEADINGREGEX);foreach(在 rx.Matches(text) 中匹配匹配){如果(开始索引找到){endIndex = match.Index;休息;}if (match.ToString().ToLower().Contains("marking")){startIndex = match.Index;startIndexFound = 真;}}return text.Substring(startIndex, (endIndex - startIndex));}

一旦找到标记部分,我就用它来查找子部分.

private DictionaryGetSubsections(字符串文本){字典<字符串,字符串>subsections = new Dictionary();string[] unprocessedSubSecs = Regex.Split(text, SUBSECTIONREGEX);字符串标题 = "";字符串内容 = "";foreach(字符串 s 在 unprocessedSubSecs 中){if(s != "")//有时它会拉入空字符串{匹配 m = Regex.Match(s, SUBSECTIONREGEX);如果(m.成功){标题 = s;}别的{内容 = s;if (!String.IsNullOrWhiteSpace(content) && !String.IsNullOrWhiteSpace(title)){subsections.Add(title, content);}}}}返回小节;}

让这些方法按照我希望的方式工作不是问题,问题在于让它们处理每个文档.我正在开发一个商业应用程序,因此任何需要许可证的 API 都不适合我.这些文档的历史从 1 到 16 年不等,因此格式差异很大.

解决方案

看看这个方法是否有效:

var heading1Regex = @"^(\d+)\s(?.*?)$\n(?<content>.*?)$\n*(?=^\d+\s|\Z)";</code></pre><p><a href="https://regex101.com/r/TZCAtX/2" rel="nofollow noreferrer">演示</a></p><pre><code>var heading2Regex = @"^(\d+)\.(\d+)\s(?<title>.*?)$\n(?<content>.*?)$\n*(?=^\d+\.\d+\s|\Z)";</code></pre><p><a href="https://regex101.com/r/vNCVZS/2" rel="nofollow noreferrer">演示</a></p><pre><code>var heading3Regex = @"^(\d+)\.(\d+)\.(\d+)\s(?<title>.*?)$\n(?<content>.*?)$\n*(?=^\d+\.\d+\.\d+\s|\Z)";</code></pre><p><a href="https://regex101.com/r/4MNc24/2" rel="nofollow noreferrer">演示</a></p><p>对于每个 pdf 文件:</p><pre><code>var headingRegex = Heading1Regex;var subHeadingRegex = Heading2Regex;如果 HeadingRegex 有任何匹配项{对于每个匹配项,查找 subHeadingRegex 的匹配项}别的{var HeadingRegex = Heading2Regex;var subHeadingRegex = Heading3Regex;//重复同样的步骤}</code></pre><p><strong>1.边缘情况 1:5.2 之后,是 7.1.3</strong></p><p>如<a href="https://regex101.com/r/4vkMKh/2" rel="nofollow noreferrer">此处</a>所示,使用heading2Regex获取主要部分匹配.</p><p>将匹配的 group1 转换为整数</p><pre><code>int.TryParse(match.group1, out var HeadingIndex);</code></pre><p>获取heading3Regex的子部分匹配</p><p>对于每个小节匹配,将 group1 转换为整数.</p><pre><code>int.TryParse(match.group1, out var subHeadingIndex);</code></pre><p>检查headingIndex 是否等于subHeadingIndex.如不作相应处理.</p><p>I'm wondering how I can identify headings with differing numerical marking styles with one or more regular expressions assuming sometimes styles overlap between documents. The goal is to extract all the subheadings and data for a specific heading in each file, but these files aren't standardized. Is regular expressions even the right approach here?</p>

<p>I'm working on a program that parses a .pdf file and looks for a specific section. Once it finds the section it finds all subsections of that section and their content and stores it in a <code>dictionary<string, string></code>. I start by reading the entire pdf into a string, and then use this function to locate the "marking" section.</p><pre><code>private string GetMarkingSection(string text)
    {
      int startIndex = 0;
      int endIndex = 0;
      bool startIndexFound = false;
      Regex rx = new Regex(HEADINGREGEX);
      foreach (Match match in rx.Matches(text))
      {
        if (startIndexFound)
        {
          endIndex = match.Index;
          break;
        }
        if (match.ToString().ToLower().Contains("marking"))
        {
          startIndex = match.Index;
          startIndexFound = true;
        }
      }
      return text.Substring(startIndex, (endIndex - startIndex));
    }
</code></pre><p>Once the marking section is found, I use this to find subsections.</p><pre><code>private Dictionary<string, string> GetSubsections(string text)
    {
      Dictionary<string, string> subsections = new Dictionary<string, string>();
      string[] unprocessedSubSecs = Regex.Split(text, SUBSECTIONREGEX);
      string title = "";
      string content = "";
      foreach(string s in unprocessedSubSecs)
      {
        if(s != "") //sometimes it pulls in empty strings
        {
          Match m = Regex.Match(s, SUBSECTIONREGEX);
          if (m.Success)
          {
            title = s;
          }
          else
          {
            content = s;
            if (!String.IsNullOrWhiteSpace(content) && !String.IsNullOrWhiteSpace(title))
            {
              subsections.Add(title, content);
            }
          }
        }
      }
      return subsections;
    }
</code></pre><p>Getting these methods to work the way I want them to isn't an issue, the problem is getting them to work with each of the documents. <strong>I'm working on a commercial application so any API that requires a license isn't going to work for me.</strong>
These documents are anywhere from 1-16 years old, so the formatting varies quite a bit. <a href="https://regex101.com/r/6RckWL/5" rel="nofollow noreferrer">Here is a link to some sample headings and subheadings from various documents.</a> But to make it easy, here are the regex patterns I'm using:</p>

<ul>
<li>Heading: <code>(?m)^(\d+\.\d+\s[ \w,\-]+)\r?$</code></li>
<li>Subheading: <code>(?m)^(\d\.[\d.]+ ?[ \w]+) ?\r?$</code></li>
<li>Master Key: <code>(?m)^(\d\.?[\d.]*? ?[ \-,:\w]+) ?\r?$</code></li>
</ul>

<p>Since some headings use the subheading format in other documents I am unable to use the same heading regex for each file, and the same goes for my subheading regex.</p>

<p>My alternative to this was that I was going to write a master key (listed in the regex link) to identify all types of headings and then locate the last instance of a numeric character in each heading (5.1.X) and then look for 5.1.X+1 to find the end of that section.</p>

<p>That's when I ran into another problem. Some of these files have absolutely no proper structure. Most of them go from 5.2->7.1.5 (5.2->5.3/6.0 would be expected)</p>

<p>I'm trying to wrap my head around a solution for something like this, but I've got nothing... I am open to ideas not involving regex as well.</p>

<p>Here is my updated <code>GetMarkingSection</code> method:</p><pre><code>private Dictionary<string, string> GetMarkingSection(string text)
    {
      var headingRegex = HEADING1REGEX;
      var subheadingRegex = HEADING2REGEX;
      Dictionary<string, string> markingSection = new Dictionary<string, string>();

      if (Regex.Matches(text, HEADING1REGEX, RegexOptions.Multiline | RegexOptions.Singleline).Count > 0)
      {
        foreach (Match m in Regex.Matches(text, headingRegex, RegexOptions.Multiline | RegexOptions.Singleline))
        {
          if (Regex.IsMatch(m.ToString(), HEADINGMASTERKEY))
          {
            if (m.Groups[2].Value.ToLower().Contains("marking"))
            {
              var subheadings = Regex.Matches(m.ToString(), subheadingRegex, RegexOptions.Multiline | RegexOptions.Singleline);
              foreach (Match s in subheadings)
              {
                markingSection.Add(s.Groups[1].Value + " " + s.Groups[2].Value, s.Groups[3].Value);
              }
              return markingSection;
            }
          }
        }
      }
      else
      {
        headingRegex = HEADING2REGEX;
        subheadingRegex = HEADING3REGEX;

        foreach(Match m in Regex.Matches(text, headingRegex, RegexOptions.Multiline | RegexOptions.Singleline))
        {
          if(Regex.IsMatch(m.ToString(), HEADINGMASTERKEY))
          {
            if (m.Groups[2].Value.ToLower().Contains("marking"))
            {
              var subheadings = Regex.Matches(m.ToString(), subheadingRegex, RegexOptions.Multiline | RegexOptions.Singleline);
              foreach (Match s in subheadings)
              {
                markingSection.Add(s.Groups[1].Value + " " + s.Groups[2].Value, s.Groups[3].Value);
              }
              return markingSection;
            }
          }
        }
      }
      return null;
    }
</code></pre><p>Here are some example PDF files:

</p><div class="h2_lin"> 解决方案 </div><p>See if this approach works:</p><pre><code>var heading1Regex = @"^(\d+)\s(?<title>.*?)$\n(?<content>.*?)$\n*(?=^\d+\s|\Z)";
</code></pre><p><a href="https://regex101.com/r/TZCAtX/2" rel="nofollow noreferrer">Demo</a></p><pre><code>var heading2Regex = @"^(\d+)\.(\d+)\s(?<title>.*?)$\n(?<content>.*?)$\n*(?=^\d+\.\d+\s|\Z)";
</code></pre><p><a href="https://regex101.com/r/vNCVZS/2" rel="nofollow noreferrer">Demo</a></p><pre><code>var heading3Regex = @"^(\d+)\.(\d+)\.(\d+)\s(?<title>.*?)$\n(?<content>.*?)$\n*(?=^\d+\.\d+\.\d+\s|\Z)";
</code></pre><p><a href="https://regex101.com/r/4MNc24/2" rel="nofollow noreferrer">Demo</a></p>

<p>For each pdf file:</p><pre><code>var headingRegex = heading1Regex;
var subHeadingRegex = heading2Regex;

if there are any matches for headingRegex
{
    for each match, find matches for subHeadingRegex
}
else
{
    var headingRegex = heading2Regex;
    var subHeadingRegex = heading3Regex;
    //repeat same steps
}
</code></pre><p><strong>1. Edge case 1: after 5.2, comes 7.1.3</strong></p>

<p>As shown <a href="https://regex101.com/r/4vkMKh/2" rel="nofollow noreferrer">here</a>,
get main section match using heading2Regex.</p>

<p>convert group1 of the match to integer</p><pre><code>int.TryParse(match.group1, out var headingIndex);
</code></pre><p>get sub section matches for heading3Regex</p>

<p>for each subsection match, convert group1 to integer.</p><pre><code>int.TryParse(match.group1, out var subHeadingIndex);
</code></pre><p>check if headingIndex is equal to subHeadingIndex. if not handle accordingly.</p>

                        <p>这篇关于使用正则表达式识别标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!</p>
                        
                    </div>
                    <div class="arc-body-main-more">
                        <span onclick="unlockarc('2330560');">查看全文</span>
                    </div>
                </div>
				<div>
                            
                        </div>
                <div class="wwads-cn wwads-horizontal" data-id="166" style="max-width:100%;border: 4px solid #666;"></div>
            </div>
        </article>
        <div id="arc-ad-2" class="mb-1">
            <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-5038752844014834"
     data-ad-slot="3921941283"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

        </div>
        <div class="widget bgwhite radius-1 mb-1 shadow widget-rel">
            <h5>相关文章</h5>
            <ul>
                    <li>
                        <a target="_blank" title="正则表达式 - 识别分数" href="/2373433.html">
                            正则表达式 - 识别分数;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式正则表达式" href="/1141455.html">
                            正则表达式正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="识别URL的正则表达式" href="/391046.html">
                            识别URL的正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式识别独立编号" href="/2247839.html">
                            正则表达式识别独立编号;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式的正则表达式?" href="/1745336.html">
                            正则表达式的正则表达式?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="使用正则表达式识别 wordpress 短代码" href="/2493141.html">
                            使用正则表达式识别 wordpress 短代码;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="在VBA中正则表达式使用正则表达式" href="/2068367.html">
                            在VBA中正则表达式使用正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="在旁写中使用正则表达式(正则表达式)" href="/2008123.html">
                            在旁写中使用正则表达式(正则表达式);
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式描述正则表达式模式?" href="/1506630.html">
                            正则表达式描述正则表达式模式?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式表达式" href="/1154650.html">
                            正则表达式表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式使用" href="/1046385.html">
                            正则表达式使用;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="用于识别 If 语句的正则表达式" href="/2373235.html">
                            用于识别 If 语句的正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式 -  Java源方法识别" href="/1307904.html">
                            正则表达式 -  Java源方法识别;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何识别邪恶的正则表达式?" href="/2371875.html">
                            如何识别邪恶的正则表达式?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="Js 正则表达式到 Python 正则表达式" href="/2374082.html">
                            Js 正则表达式到 Python 正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="PCRE 正则表达式到 sed 正则表达式" href="/2331727.html">
                            PCRE 正则表达式到 sed 正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="PCRE正则表达式到Erlang正则表达式" href="/2244531.html">
                            PCRE正则表达式到Erlang正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="寻找正则表达式的正则表达式?" href="/835237.html">
                            寻找正则表达式的正则表达式?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="Java 正则表达式与 XSD 正则表达式" href="/2505225.html">
                            Java 正则表达式与 XSD 正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="Ruby 正则表达式与 Python 正则表达式" href="/2373212.html">
                            Ruby 正则表达式与 Python 正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式中的Perl正则表达式" href="/745829.html">
                            正则表达式中的Perl正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式。" href="/1049621.html">
                            正则表达式。;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式" href="/1049452.html">
                            正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式" href="/1793645.html">
                            正则表达式;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="正则表达式" href="/1236710.html">
                            正则表达式;
                        </a>
                    </li>
            </ul>
        </div>
        <div class="mb-1">
            <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-5038752844014834"
     data-ad-slot="3921941283"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

        </div>
    </div>
    <div class="side">
        <div class="widget widget-side bgwhite mb-1 shadow">
            <h5>C#/.NET最新文章</h5>
            <ul>
                    <li>
                        <a target="_blank" title="smtp.live.com  - 邮箱不可用。服务器响应为:5.7.3请求的操作中止;用户未通过身份验证" href="/444094.html">
                            smtp.live.com  - 邮箱不可用。服务器响应为:5.7.3请求的操作中止;用户未通过身份验证;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="C#WinForms应用程序失败在发送电子邮件:远程名称无法解析:'smtp.gmail.com;操作超时" href="/32030.html">
                            C#WinForms应用程序失败在发送电子邮件:远程名称无法解析:'smtp.gmail.com;操作超时;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="Windows应用程序已停止工作::事件名称CLR20r3" href="/7498.html">
                            Windows应用程序已停止工作::事件名称CLR20r3;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何设置的WebAPI控制器的multipart / form-data的" href="/294641.html">
                            如何设置的WebAPI控制器的multipart / form-data的;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="无法反序列化当前的JSON数组(例如[1,2,3])" href="/240450.html">
                            无法反序列化当前的JSON数组(例如[1,2,3]);
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何设置一个HttpClient的请求Content-Type头?" href="/221353.html">
                            如何设置一个HttpClient的请求Content-Type头?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="为什么发现“没有匹配请求URI的HTTP资源”这里?" href="/547804.html">
                            为什么发现“没有匹配请求URI的HTTP资源”这里?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="如何设置一个重试次数在RabbitMQ的呢?" href="/10344.html">
                            如何设置一个重试次数在RabbitMQ的呢?;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="任务&LT;&GT;不包含'GetAwaiter“的定义" href="/300688.html">
                            任务&LT;&GT;不包含'GetAwaiter“的定义;
                        </a>
                    </li>
                    <li>
                        <a target="_blank" title="这是不可能连接到redis的服务器(S);以创建断开连接多路复用器" href="/421232.html">
                            这是不可能连接到redis的服务器(S);以创建断开连接多路复用器;
                        </a>
                    </li>
            </ul>
        </div>
        <div class="widget widget-side bgwhite mb-1 shadow">
            <h5>
                热门教程
            </h5>
            <ul>
                <li>
                    <a target="_blank" title="Java教程" href="/OnLineTutorial/java/index.html">
                        Java教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Apache ANT 教程" href="/OnLineTutorial/ant/index.html">
                        Apache ANT 教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Kali Linux教程" href="/OnLineTutorial/kali_linux/index.html">
                        Kali Linux教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="JavaScript教程" href="/OnLineTutorial/javascript/index.html">
                        JavaScript教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="JavaFx教程" href="/OnLineTutorial/javafx/index.html">
                        JavaFx教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="MFC 教程" href="/OnLineTutorial/mfc/index.html">
                        MFC 教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Apache HTTP客户端教程" href="/OnLineTutorial/apache_httpclient/index.html">
                        Apache HTTP客户端教程
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Microsoft Visio 教程" href="/OnLineTutorial/microsoft_visio/index.html">
                        Microsoft Visio 教程
                    </a>
                </li>
            </ul>
        </div>
        <div class="widget widget-side bgwhite mb-1 shadow">
            <h5>
                热门工具
            </h5>
            <ul>
                
                <li>
                    <a target="_blank" title="Java 在线工具" href="/Onlinetools/details/4">
                        Java 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="C(GCC) 在线工具" href="/Onlinetools/details/6">
                        C(GCC) 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="PHP 在线工具" href="/Onlinetools/details/8">
                        PHP 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="C# 在线工具" href="/Onlinetools/details/1">
                        C# 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Python 在线工具" href="/Onlinetools/details/5">
                        Python 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="MySQL 在线工具" href="/Onlinetools/Dbdetails/33">
                        MySQL 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="VB.NET 在线工具" href="/Onlinetools/details/2">
                        VB.NET 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Lua 在线工具" href="/Onlinetools/details/14">
                        Lua 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Oracle 在线工具" href="/Onlinetools/Dbdetails/35">
                        Oracle 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="C++(GCC) 在线工具" href="/Onlinetools/details/7">
                        C++(GCC) 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Go 在线工具" href="/Onlinetools/details/20">
                        Go 在线工具
                    </a>
                </li>
                <li>
                    <a target="_blank" title="Fortran 在线工具" href="/Onlinetools/details/45">
                        Fortran 在线工具
                    </a>
                </li>
            </ul>
        </div>
        
    </div>
</div>
<script type="text/javascript">var eskeys = '使用,正则表达式,识别,标题'; var cat = 'cc';';//c</script>
    </div>
<div id="pop" onclick="pophide();">
    <div id="pop_body" onclick="event.stopPropagation();">
        <h6 class="flex flex101">
            登录
            <span onclick="pophide();">关闭</span>
        </h6>
        <div class="pd-1">
            <div class="wxtip center">
                <span>扫码关注<em>1秒</em>登录</span>
            </div>
            <div class="center">
                <img id="qr" src="https://huajiakeji.com/Content/Images/qrydx.jpg" alt="" style="width:150px;height:150px;" />
            </div>
            <div style="margin-top:10px;display:flex;justify-content: center;">
                <input type="text" placeholder="输入验证码" id="txtcode" autocomplete="off" />
                <input id="btngo" type="button" onclick="chk()" value="GO" />
            </div>
            <div class="center" style="margin: 4px; font-size: .8rem; color: #f60;">
                发送“验证码”获取
                <em style="padding: 0 .5rem;">|</em>
                <span style="color: #01a05c;">15天全站免登陆</span>
            </div>
            <div id="chkinfo" class="tip"></div>
        </div>
    </div>
</div>    <script type="text/javascript" src="https://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/highlight.min.js"></script>
<script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/base.js?v=0.22"></script>
<script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/tui.js?v=0.11"></script>
<footer class="footer">
    <div class="container">
		<div class="flink mb-1">
			友情链接:
            <a href="https://www.it1352.com/" target="_blank">IT屋</a>
            <a href="https://huajiakeji.com/" target="_blank">Chrome插件</a>
            <a href="https://www.cnplugins.com/" target="_blank">谷歌浏览器插件</a>
        </div>
        <section class="copyright-section">
            <a href="https://www.it1352.com" title="IT屋-程序员软件开发技术分享社区">IT屋</a>
            ©2016-2022 <a href="http://www.beian.miit.gov.cn/" target="_blank">琼ICP备2021000895号-1</a>
            <a href="/sitemap.html" target="_blank" title="站点地图">站点地图</a>
            <a href="/Home/Tags" target="_blank" title="站点标签">站点标签</a>
            <a target="_blank" alt="sitemap" href="/sitemap.xml">SiteMap</a>
            <a href="/1155981.html" title="IT屋-免责申明"><免责申明></a>
            本站内容来源互联网,如果侵犯您的权益请联系我们删除.
        </section>
        
<!--统计代码-->
<script type="text/javascript">
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?0c3a090f7b3c4ad458ac1296cb5cc779";
      var s = document.getElementsByTagName("script")[0]; 
      s.parentNode.insertBefore(hm, s);
    })();
</script>
<script type="text/javascript">
    (function () {
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        }
        else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>
    </div>
</footer>
</body>
</html>