<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)"));