Javascript 有没有办法获得分组结果以及所有匹配的正则表达式字符串
我想得到正则表达式匹配的结果以及组匹配 输入字符串:Javascript 有没有办法获得分组结果以及所有匹配的正则表达式字符串,javascript,regex,Javascript,Regex,我想得到正则表达式匹配的结果以及组匹配 输入字符串: var str= ' application [<!ENTITY % common SYSTEM "../common.ent">\n%common;] <!ENTITY % name PUBLIC "public_ID" "URI">' 仅将结果转换为匹配字符串: ["<!ENTITY % common SYSTEM "../common.ent">", "<!ENTITY % name
var str= ' application [<!ENTITY % common SYSTEM "../common.ent">\n%common;] <!ENTITY % name PUBLIC "public_ID" "URI">'
仅将结果转换为匹配字符串:
["<!ENTITY % common SYSTEM "../common.ent">", "<!ENTITY % name PUBLIC "public_ID" "URI">"]
[“”,“”]
如何获得组匹配的结果
例如,在本例中,我预期会出现如下情况:
[{
matched : "<!ENTITY % common SYSTEM "../common.ent">",
groups : ["common", "SYSTEM", "../common.ent"]
}, {
matched : "<!ENTITY % name PUBLIC "public_ID" "URI">",
groups : ["name", "PUBLIC", "public_ID", "URI"]
}]
[{
匹配:“,
组:[“通用”、“系统”、“通用./common.ent”]
}, {
匹配:“,
组:[“名称”、“公共”、“公共ID”、“URI”]
}]
编辑:
只是有点想知道regex101.com是怎么回事
展示这个
Ref:在javascript中,一次调用是不可能的,您必须在循环中调用它
var str='application[\n%common;]';
var rg=//g;
var结果;
var结果=[];
while(result=rg.exec(str)){
结果。推(结果);
}
//这个部分和它们的连接只是为了显示结果
document.getElementById(“结果”).innerText=results.join(@@@@);
document.getElementById(“结果”).innerHTML=document.getElementById(“结果”).innerHTML.replace(“@@@@@@“,”
);
//使用Win7 Chrome 38+进行测试
我的答案有用吗,还是我遗漏了什么?
["<!ENTITY % common SYSTEM "../common.ent">", "<!ENTITY % name PUBLIC "public_ID" "URI">"]
[{
matched : "<!ENTITY % common SYSTEM "../common.ent">",
groups : ["common", "SYSTEM", "../common.ent"]
}, {
matched : "<!ENTITY % name PUBLIC "public_ID" "URI">",
groups : ["name", "PUBLIC", "public_ID", "URI"]
}]