我在输入字符串中找到字符串并从找到的字符串中获取子字符串:
我输入了字符串:
<ipc:infoblock title = 'my title'>\
<ipc:form:period />\
<ipc:form:time-scale />\
<ipc:form:hq />\
<ipc:form:regions />\
<ipc:form:apply />\
</ipc:infoblock>\
我想在表格中得到一个结果:
[{'<ipc:form:period />', 'ipc:form:period'},
{{'<ipc:form:time-scale />', 'ipc:form:time-scale'},
...,
{'<ipc:form:apply />', 'ipc:form:apply'}]
我的javascript代码:
var res = inputString.match(/<ipc:form:([^\s]+)\s+\/>/gi);
结果:
0: "<ipc:form:period />"
1: "<ipc:form:time-scale />"
2: "<ipc:form:hq />"
3: "<ipc:form:regions />"
4: "<ipc:form:apply />"
但如何获取上述数组,包含子串和元素子串(多维数组)的结果?
我不想在找到的字符串上使用其他搜索!
答案 0 :(得分:0)
看起来/global/g
正则表达式总是会丢弃捕获组。
如果您可以访问ES2015环境,可以尝试的一件事是粘滞的正则表达式标记:
const re = /(a)[bc]/y
'abac'.match(re) // => ["ab", "a"]
'abac'.match(re) // => ["ac", "a"]
'abac'.match(re) // => null
否则,您将不得不对结果字符串进行第二次搜索。