NodeJS中的Regex Pattren问题

时间:2018-11-15 13:24:38

标签: php node.js regex

我正在尝试将PHP代码转换为NodeJS

我在进行NodeJS尝试后得到mindice = function(n = 10, m = 3) { v <- vector for(i in 1:10) { minima= numeric(n) for(i in 1:n) { minima[i] = min(sample(6,m,replace=T)) } v[i] = mean(minima) } v }

null

但是在PHP中,以下行对我来说很好

matches = data.match(/@objid="(.*?)" href="(.*?)" data-autoplay="(.*?)"@si/);

样本数据

preg_match_all('@objid="(.*?)" href="(.*?)" data-autoplay="(.*?)"@si', $content, $adress_link);

1 个答案:

答案 0 :(得分:1)

您可以使用

/objid="[^"]*"\s+href="([^"]*)"\s+data-autoplay=/i

并抓取第1组。请参见regex demo

详细信息

  • objid="-文字
  • [^"]*-除"以外的0多个字符
  • "-一个"字符
  • \s+-超过1个空格
  • href="-文字
  • ([^"]*)-组1:除"以外的0个字符
  • "-一个"字符
  • \s+-超过1个空格
  • data-autoplay=-文字文本。

JS演示:

var s = 'data-objid="293001169457" href="https://m.ok.ru/dk?st.cmd=moviePlaybackRedirect&amp;st.sig=f74e88c3bb4366f8d16afedd42c5d8e56808f175&amp;st.mq=2&amp;st.mvid=293001169457&amp;st.ip=182.185.185.173&amp;st.dla=on&amp;st.exp=1542464401749&amp;st.hls=off&amp;_prevCmd=movieLayer&amp;tkn=6519" data-autoplay="1"><img src="//pimg.mycdn.me/getImage?url=http%3A%2F%2Fvdp.mycdn.me%2FgetImage%3Fid%3D142641728249%26idx%3D8%26thumbType%3D32%26f%3D1&amp;type=VIDEO_S_368&amp;signatureToken=gO17aWVQ5f69KKvIJCtsDQ" alt="Video" class="vdo thumb"/><div class="vdo playb"></div><div class="vd_tmr">2:18:57</div></a><div class="vdospinner"></div></div></div></div></div></div><div class="mvtxt card"><div class="a-menu toggle"><input class="a-menu_control tgl-cbox" type="checkbox" hidden="hidden" checked="checked" autocomplete="off" id="m-1542291601750-1"></input><div class="a-menu_content_w tgl-toggled" aria-hidden="true"';
var rx = /objid="[^"]*"\s+href="([^"]*)"\s+data-autoplay=/i;
var match = rx.exec(s);
if (match) {
   console.log(match[1]);
}