Javascript 使用正则表达式解析文本中的单词
我有一个HTML页面,其中包含如下元素Javascript 使用正则表达式解析文本中的单词,javascript,regex,vb.net,Javascript,Regex,Vb.net,我有一个HTML页面,其中包含如下元素 <li id="ctl00_rpPublication_ctl61_liPublication" data-pmid="19917728"> <li id="ctl00_rpPublication_ctl62_liPublication" data-pmid="19887554"> <li id="ctl00_rpPublication_ctl63_liPublication" data-pmid="19851314">
<li id="ctl00_rpPublication_ctl61_liPublication" data-pmid="19917728">
<li id="ctl00_rpPublication_ctl62_liPublication" data-pmid="19887554">
<li id="ctl00_rpPublication_ctl63_liPublication" data-pmid="19851314">
value = 19917728,19887554,19851314
我可以对数据pmid进行模式匹配,但不知道如何获得双引号之间的值
我想使用Regex的原因是我可以在不同的地方使用代码,比如vb.net或javascript。这对正则表达式有用吗?页面可以有100个值 你可以这样做
let data=`
数据pmid=“19887554”>
数据pmid=“19851314”>`;
设rx=/data pmid=“([^”]+)”/g;
匹配=rx.exec(数据);
while(匹配!=null){
//匹配文本:匹配[0]
//匹配开始:match.index
//捕获组n:匹配[n]
console.log(匹配[1])
匹配=rx.exec(数据);
}
*数据pmid=\”([0-9]{1,})\“*
我认为这个正则表达式应该可以工作,你会在match Group中得到数字。虽然正则表达式可能是相同的,但使用它的所有代码在不同的语言中会有所不同,你将无法利用JavaScript或HtmlAgilityPack的健壮性。请注意HTML是如何提供给你的。它可以有行结尾,也可以没有,甚至可以是一个组合。我同意A.Morton的评论。在我的javaScript中效果很好。你知道如何在vb,net中运行它吗?我可以将Dim re双重引用为Regex=New Regex(“/data pmid=”“([^”“]+)”“/g”),但它不喜欢^”“Thankstory——它不是Regex,而是文本字符串——谢谢