Javascript 正则表达式解析问题ecmascript
有人能帮我添加这个正则表达式吗:Javascript 正则表达式解析问题ecmascript,javascript,regex,web-scraping,ecmascript-6,Javascript,Regex,Web Scraping,Ecmascript 6,有人能帮我添加这个正则表达式吗: var re = /<a href='([\s\S]*?)'([\s\S]*?)'[\s\S]*?<img src='([\s\S]*?)'[\s\S]*?<\/a>/g; var match = re.exec(doc); 我试着用两个变量来解释它,但它不起作用 var b = "(id=\d*)'"; var a = "<a href='/details.php[*?]"; var b=“(id=\d*)”; 变量a=”
var re = /<a href='([\s\S]*?)'([\s\S]*?)'[\s\S]*?<img src='([\s\S]*?)'[\s\S]*?<\/a>/g;
var match = re.exec(doc);
我试着用两个变量来解释它,但它不起作用
var b = "(id=\d*)'";
var a = "<a href='/details.php[*?]";
var b=“(id=\d*)”;
变量a=”
现在他们更改了代码,正则表达式不再工作了
</div><div class='mn1_content'><div class=pad0x0x5x0><ul class=lis><li class=mn><a href="/top.php" title="Топ раздач">Топ раздач</a></li><li><a href="/top.php?w=1" title="Топ раздач недели">Топ раздач недели</a></li><li><a href="/top.php?w=2" title="Топ раздач месяца">Топ раздач месяца</a></li><li><a href="/top.php?w=3" title="Топ раздач 3 месяца">Топ раздач 3 месяца</a></li></ul></div><div class='bx1 stable'><a href='/details.php?SbI135km9&id=1563719' title='Пираты Карибского моря: Мертвецы не рассказывают сказки / Pirates of the Caribbean: Dead Men Tell No Tales / 2017 / ДБ / HDRip' target='_blank'><img src='http://s.kinozal.tv/i/poster/1/9/1563719.jpg' alt=''></a>
<a href='/details.php?SbI135km9&id=1578358' title='Аритмия / 2017 / РУ / WEB-DLRip' target='_blank'><img src='http://picplus.ru/img/1711/15/05d0f570.jpg' alt=''></a>
<a href='/details.php?SbI135km9&id=1557197' title='Выстрел в пустоту (Главарь) / Shot Caller / 2017 / ПМ / BDRip' target='_blank'><img src='http://s.kinozal.tv/i/poster/9/7/1557197.jpg' alt=''></a>
<a href='/details.php?SbI135km9&id=1564178' title='Бабушка лёгкого поведения / 2017 / РУ / WEB-DLRip' target='_blank'><img src='http://s.kinozal.tv/i/poster/7/8/1564178.jpg' alt=''></a>
<a href='/details.php?SbI135km9&id=1570558' title='Напарник / 2017 / РУ / WEB-DLRip' target='_blank'><img src='http://s.kinozal.tv/i/poster/5/8/1570558.jpg' alt=''></a>
<a href='/details.php?SbI135km9&id=1579515' title='Мадам / Madame / 2017 / ДБ / WEB-DLRip' target='_blank'><img src='http://picplus.ru/img/1711/22/d03ca6e5.jpg' alt=''></a>
<a href='/details.php?SbI135km9&id=1571565' title='Про любовь. Только для взрослых / 2017 / РУ / WEB-DLRip' target='_blank'><img src='http://s.kinozal.tv/i/poster/6/5/1571565.jpg' alt=''></a>
<a href='/details.php?SbI135km9&id=1576347' title='Троцкий (1-8 серии из 8) / 2017 / РУ / SATRip' target='_blank'><img src='http://s.kinozal.tv/i/poster/4/7/1576347.jpg' alt=''></a>
<a href='/details.php?SbI135km9&id=1569291' title='Оно / It / 2017 / ПМ / HDTVRip' target='_blank'><img src='http://s.kinozal.tv/i/poster/9/1/1569291.jpg' alt=''></a>
我需要的是一个正则表达式,它接受以下链接:
<a href='/details.php?SbI135km9&id=1578358'
只需将href
的正则表达式分成两部分:第一部分您感兴趣,第二部分可能不感兴趣
<a href='([^\?]*)(.*?)'(?:[\s\S]*?)'[\s\S]*?<img src='([\s\S]*?)'[\s\S]*?<\/a>
这应该可以
let re = /(^.+\')(\/[a-z]+\.[a-z]+\?)(.{0,})(id=[0-9]+)(.+)/gi
let link = "<a href='/details.php?asdasd;id=1578358&asdasdasd'"
let replaced = link.replace(re, "$2$4");
let re=/(^.+\')(\/[a-z]+\.[a-z]+\?)(.{0,})(id=[0-9]+)(.+)/gi
让link=“简短
这更像是DOM解析器的工作,但是,假设这是已知的DOM元素的子集,您可以使用以下正则表达式和代码来匹配链接
密码
注意:我将上面的链接设置为PCRE regex,因为JavaScript风格不显示匹配项;这两种发动机的工作原理完全相同
<a href='([^']*)'[\s\S]*?'[\s\S]*?<img src='([^']*)'[\s\S]*?<\/a>
`
var re=/如果我没有弄错的话,您希望继续使用代码中的匹配项,但您希望删除类似以下内容的数据
SbI135km9&代码>从匹配[1]
如下所示:
/details.php?SbI135km9&;id=1563719
如果是这种情况,可以使用原始正则表达式替换while循环中的match[1]
数据
要匹配要替换的数据,可以对任何单词字符执行一次或多次\w+
,然后执行$amp
并将其替换为空字符串
例如:
var m1=match[1]。替换(/\w+&;/,“”)代码>为什么不将其转换为HTML并使用DOM方法呢!
let re = /(^.+\')(\/[a-z]+\.[a-z]+\?)(.{0,})(id=[0-9]+)(.+)/gi
let link = "<a href='/details.php?asdasd;id=1578358&asdasdasd'"
let replaced = link.replace(re, "$2$4");
<a href='([^']*)'[\s\S]*?'[\s\S]*?<img src='([^']*)'[\s\S]*?<\/a>