我从维基百科中获取一些数据,它在括号内有一些内容,我想删除括号内的所有内容。我可以使用content.replace(/\s*\(.*?\)\s*/g, '')
在括号单一时删除数据,但对于某些数据,括号是double和triple。请帮助我获得预期的输出。
输入
俄罗斯((听);俄语:Россия,tr.Rossíya,IPA:[rɐsʲijə]) 俄罗斯联邦正式
预期输出
俄罗斯正式成为俄罗斯联邦
我现在收到的输出
俄罗斯;俄语:Россия,tr。 Rossíya,IPA:[rɐsʲijə])正式的 俄罗斯联邦
答案 0 :(得分:1)
试试这个
var text = "Russia ( ( listen); Russian: Росси́я, tr. Rossíya, IPA: [rɐˈsʲijə]) officially the Russian Federation"
console.log(text.replace(/\s*\(.*\)/,''));
答案 1 :(得分:1)
使用JS regex无法匹配嵌套括号。 Hare是一个基本的解析器代码来完成这项工作:
var str = 'Russia ( ( listen); Russian: Росси́я, tr. Rossíya, IPA: [rɐˈsʲijə]) officially the Russian Federation (Russian: Российская Федерация, tr. Rossiyskaya Federatsiya, IPA: [rɐˈsʲijskəjə fʲɪdʲɪˈratsɨjə]), is a sovereign country in Eurasia. At 17,125,200 square kilometres (6,612,100 sq mi)';
var result = '';
var lvl = 0;
for (var i = 0, len = str.length; i < len; i++) {
var ch = str.charAt(i);
if (ch == '(')
lvl++;
if (lvl == 0)
result += ch;
if (ch == ')')
lvl--;
}
console.log(result.replace(/\s{2,}/g, ' '));
&#13;
答案 2 :(得分:1)
这可能是一个很长的答案。但逻辑适用于任何情况。
var text = "Russia ( ( listen); Russian: Росси́я, tr. Rossíya, IPA: [rɐˈsʲijə]) officially the (soviet) Russian Federation"
function replaceParenthesis(text) {
var counter = 0,
startIndex = 0,
endIndex = 0,
parts = [],
output = text;
for (var i = 0; i < text.length; i++) {
if (text[i] === "(") {
if (counter == 0) {
startIndex = i;
}
counter++;
} else if (text[i] === ")") {
counter--;
if (counter == 0) {
endIndex = i + 1;
parts.push(text.substring(startIndex, endIndex));
}
}
}
parts.forEach(function(part) {
output = output.replace(part, '');
});
return output;
}
console.log(replaceParenthesis(text));
答案 3 :(得分:0)
另一种天真的方法(这里我只删除括号,而不删除空格)。
var str = "Russia ( ( listen); Russian: Росси́я, tr. Rossíya, IPA: [rɐˈsʲijə]) officially the Russian Federation";
var output = str.substring(0,str.indexOf("(")) + str.substring(str.lastIndexOf(")")+1,str.length);
console.log(output);
&#13;
答案 4 :(得分:0)
最简单的解决方案是使用摘要REST端点的extract
或extract_html
字段:https://en.wikipedia.org/api/rest_v1/page/summary/Russia。
注意:虽然它旨在删除大多数发音,但这并不是盲目地删除所有括号。例如。你不想删除所有的括号,尤其是当谈到复杂的化学配方。此外,保留括号内的单个单词。