在Javascript中,我想从字符串中提取数组。
字符串是
var str = "abc (24 314 83 383)(-256)sa 0 (24 314) 1"
我希望优先级是括号中的文本,然后是其他由空格分隔的文本。因此,对于以上示例,结果应为:
result[0] = "abc"
result[1] = "24 314 83 383"
result[2] = "-256"
result[3] = "sa"
result[4] = "0"
result[5] = "24 314"
result[6] = "1"
我试过了
var pattern = /(.*?)[\s|\)]/g;
result = str.match(pattern);
但结果是:
abc ,(24 ,314 ,83 ,383),(-256),sa ,0 ,(24 ,314),
最佳答案
这是使用正则表达式对象和exec
的解决方案,它比使用str.match(/\w+|\((.*?)\)/g).map(e => e.replace(/^\(|\)$/g, ""))
之类的过滤括号更安全:
var str = "abc (24 314 83 383)(-256)sa 0 (24 314) 1";
var reg = /\w+|\((.*?)\)/g;
var match;
var res = [];
while (match = reg.exec(str)) {
res.push(match[1] || match[0]);
}
console.log(res);
关于javascript - 提取Javascript中的正则表达式中的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53843355/