如何使用正则表达式提取字符串?
假设我有以下文字如何使用正则表达式提取字符串?
for (;;);{"__ar":1,"__sf":"k","payload":null,"domops":[["appendContent","^div.fbProfileBrowserListContainer",true,{"__html":"\u003Cdiv class=\"fbProfileBrowserList expandedList\" id=\"100008123852509\">\u003Cul class=\"uiList clearfix _5bbv _4kg _704 _4ks\">\u003Cli class=\"fbProfileBrowserListItem\">\u003Cdiv class=\"clearfix _5qo4\">\u003Ca class=\"_8o _8t lfloat _ohe\" href=\"https:\/\/www.facebook.com\/tasvirmanepal\/?fref=pb\" tabindex=\"-1\" aria-hidden=\"true\">\u003Cimg class=\"_s0 _rw img\" src=\"https:\/\/fb-s-b-a.akamaihd.net\/h-ak-xta1\/v\/t1.0-1\/c13.0.50.50\/p50x50\/12246747_952307471472706_3389977056619055535_n.jpg?oh=fdcd99bd098ad7d60b67701358bdbc97&oe=58D45D87&__gda__=1489984135_7befa40c475cf7f2a6aa021e97d7f429\" alt=\"\" \/>\u003C\/a>\u003Cdiv class=\"clearfix _42ef\">\u003Cdiv class=\"_6a rfloat _ohf\">\u003Cdiv class=\"_6a _6b\" style=\"height:50px\">\u003C\/div>\u003Cdiv class=\"_6a _6b\">\u003Cdiv class=\"_5t4x\">\u003Cspan
现在,我想提取字符串如
src=\"https:\/\/fb-s-b-a.akamaihd.net\/h-ak-xta1\/v\/t1.0-1\/c13.0.50.50\/p50x50\/12246747_952307471472706_3389977056619055535_n.jpg?oh=fdcd99bd098ad7d60b67701358bdbc97&oe=58D45D87&__gda__=1489984135_7befa40c475cf7f2a6aa021e97d7f429\"
一个正则表达式的工作原理与逻辑,先定义逻辑,然后写正则表达式。
说:
- 这场比赛是双引号之间,并且犯规包含双引号?
- 比赛由
src=\"
一个网站就像http://regexr.com/,你可以很方便地测试正则表达式的前面。
这是一个可能的正则表达式:src=\\\"[^"]*"
但它不会帮助你与角落案件。
它基本上匹配以src\"
开头的所有内容,然后除了双引号"
之外的任何(零个或多个)字符,然后还包括双引号。
请试试这个:
const regex = /src=\\"[^"]*?\\"/g;
const str = `for (;;);{"__ar":1,"__sf":"k","payload":null,"domops":[["appendContent","^div.fbProfileBrowserListContainer",true,{"__html":"\\u003Cdiv class=\\"fbProfileBrowserList expandedList\\" id=\\"100008123852509\\">\\u003Cul class=\\"uiList clearfix _5bbv _4kg _704 _4ks\\">\\u003Cli class=\\"fbProfileBrowserListItem\\">\\u003Cdiv class=\\"clearfix _5qo4\\">\\u003Ca class=\\"_8o _8t lfloat _ohe\\" href=\\"https:\\/\\/www.facebook.com\\/tasvirmanepal\\/?fref=pb\\" tabindex=\\"-1\\" aria-hidden=\\"true\\">\\u003Cimg class=\\"_s0 _rw img\\" src=\\"https:\\/\\/fb-s-b-a.akamaihd.net\\/h-ak-xta1\\/v\\/t1.0-1\\/c13.0.50.50\\/p50x50\\/12246747_952307471472706_3389977056619055535_n.jpg?oh=fdcd99bd098ad7d60b67701358bdbc97&oe=58D45D87&__gda__=1489984135_7befa40c475cf7f2a6aa021e97d7f429\\" alt=\\"\\" \\/>\\u003C\\/a>\\u003Cdiv class=\\"clearfix _42ef\\">\\u003Cdiv class=\\"_6a rfloat _ohf\\">\\u003Cdiv class=\\"_6a _6b\\" style=\\"height:50px\\">\\u003C\\/div>\\u003Cdiv class=\\"_6a _6b\\">\\u003Cdiv class=\\"_5t4x\\">\\u003Cspan`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
请分享你有这么远,为什么它不提供所期望的结果的代码。 – wdosanjos