正则表达式提取p标签及内容

<p>筛孔不易被粘湿料堵塞</p>
<p>无需水 变频设计 产量高</p>
<p>生产能力:150-900T/H</p>
<p>进料粒度:≤600mm</p>

现在有四个p标签,我只想要最后两个p标签及内容,用正则表达式怎么写?

为什么要用正则?

  <body>
    <p>筛孔不易被粘湿料堵塞</p>
    <p>无需水 变频设计 产量高</p>
    <p>生产能力:150-900T/H</p>
    <p>进料粒度:≤600mm</p>
    <script>
      console.log(
        document.querySelector("p:nth-child(3)").outerHTML,
        document.querySelector("p:nth-child(4)").outerHTML
      );
    </script>
  </body>

正则的话不适用这个场景 。 你可以 getElementByTagName("p"); 这个获取的是 元素集合 然后 下标 形式 获取 innerText .

let p=document.getElementsByTagName("p");
console.log(p[0].innerText)

如果是C#&.NET/.NET 6的应用程序,AngleSharp可以帮助你。AngleSharp能让你在C#&.NET/.NET 6程序中像JavaScript那样操作HTML文档。

首先,在你的项目中安装AngleSharp程序包:https://www.nuget.org/packages/AngleSharp

示例如下:

using AngleSharp;
using System;

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            DoWork();
            Console.ReadKey();
        }

        static async void DoWork()
        {
            var html = @"
<p>筛孔不易被粘湿料堵塞</p>
<p>无需水 变频设计 产量高</p>
<p>生产能力:150-900T/H</p>
<p>进料粒度:≤600mm</p>";
            var config = Configuration.Default;
            var context = BrowsingContext.New(config);
            var document = await context.OpenAsync(req => req.Content(html));
            var items = document.QuerySelectorAll("p:nth-last-child(-n+2)");
            foreach (var item in items)
            {
                Console.WriteLine(item.OuterHtml);
            }
        }
    }
}

运行结果如下:

<p>生产能力:150-900T/H</p>
<p>进料粒度:≤600mm</p>

如果只想要标签的内容,则可以使用InnerHtml

console.log($("p:nth-child(n+3)"));