Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式解析文本中的单词_Javascript_Regex_Vb.net - Fatal编程技术网

Javascript 使用正则表达式解析文本中的单词

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

我有一个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">
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,而是文本字符串——谢谢