Javascript使用match()来选择整个段落



我试图使用JS从文本文件中提取整个段落,然后将其放入html元素。我已经读了相当多的帖子和文章,但我不能得到正确的正则表达式公式。这是文本文件的摘录:

Doing initial required tests

Testing server: xxxxxxxxyyyyyyyy
Starting test: Connectivity
* Active Directory LDAP Services Check
Determining IP4 connectivity 
* Active Directory RPC Services Check
......................... yyyyyyyy passed test Connectivity

Doing primary tests

我需要提取的是"Starting test: Connectivity"直到"通过连接性测试"。这是我正在尝试的JS代码:

async function getText(file) {
let dcdiagFile = await fetch(file);
let dcDiag = await dcdiagFile.text();
let connectivity = dcDiag.match(/Starting test: Connectivity[nr]+$(.*)(/gm) || [];
document.getElementById("DNS").innerHTML = connectivity;
console.log(connectivity);
}
getText("./dcdiagreport.txt");

'在我的代码中,我只能看到第一行。我认为通配符可以解决这个问题,但是如果我像下面那样添加单词Connectivity:

let connectivity = dcDiag.match(/Starting test: Connectivity[nr]+$(.*)Connectivity (/gm) || [];

我什么都没得到。在其他编程语言中,我会使用"文本开始*文本结束";段落。但不是在JS中。它是一个内部网无internet服务器,最好我不想下载jquery。只有香草JS。

<代码>

您可以使用.match()而不是regex1来只保留您需要的文本。

您没有指定是否要包含或排除键"开始测试:连接性"。直到"通过连接性测试"。下面是regex2包含键,regex1不包含键的测试:

PP_4

^:

说明
  • .*?——文本起始锚
  • (—非贪婪扫描
  • Starting test: Connectivity—开始捕获组1
  • .*?—期望文本
  • passed test Connectivity—非贪婪扫描
  • )—期望文本
  • .*—捕获组1结束
  • $—贪婪扫描
  • /s——锚定在文本末尾
  • s——修改符.regex2
  • 中包含换行符

.replace()0的解释:

  • 与CC_21相似,但捕获组更窄

相关内容

  • 没有找到相关文章

最新更新