为括号外的值拆分字符串

时间:2013-07-18 19:07:26

标签: javascript regex

我有一个字符串 - 'A(10), B(20), C(30), D(40), E(10), F(0),'

我想拆分它,以便我得到括号之外的所有值用逗号分割。

输出 - A B C D E F

我试图在JavaScript中执行此操作。有任何想法吗?

4 个答案:

答案 0 :(得分:0)

  

拆分它以便我得到括号之外的所有值用逗号分割

Remove括号对然后split

'A(10), B(20), C(30), D(40), E(10), F(0),'.replace(/\(\d+\)/g,"").split(/,\s*/);
// ["A", "B", "C", "D", "E", "F", ""]

要获得您想要的输出,最好使用match lookahead(“开头括号前的单词字符,一些非括号字符,右括号和逗号”):

'A(10), B(20), C(30), D(40), E(10), F(0),'.match(/\w+(?=\([^)]*\),)/g);
// ["A", "B", "C", "D", "E", "F"]

或者只是为了简单而做一个.match(/[A-Z]+/g)

答案 1 :(得分:0)

假设您提供的字符串100%代表您尝试从中提取数据,您可以这样做:

var str = 'A(10), B(20), C(30), D(40), E(10), F(0),';
str = str.replace(/\(\d+\)/g, '');

Here is a jsFiddle表明它有效。

答案 2 :(得分:0)

为什么不简单:

var str = 'A(10), B(20), C(30), D(40), E(10), F(0),';
console.log(str.match(/([A-Z])(?=\()/g)); // ["A", "B", "C", "D", "E", "F"]

JS Fiddle demo

更新了“整数或字符”的要求:

var str = 'A3(10), aB(20), 34(30), D(40), E(10), F(0),';
console.log(str.match(/([A-Z0-9]+)(?=\()/g)); // ["A3", "B", "34", "D", "E", "F"] 

JS Fiddle demo

如果您更喜欢简单的字符串,而不是数组:

var str = 'A3(10), aB(20), 34(30), D(40), E(10), F(0),';
console.log(str.match(/([A-Z0-9]+)(?=\()/g)).join(' '); // A3 B 34 D E F 

JS Fiddle demo

参考文献:

答案 3 :(得分:0)

var str = 'A(10), B(20), C(30), D(40), E(10), F(0),';
var sections = str.split(',');
var myRegexp = /^(?:\s+)?([^\(]+)/;
var results = new Array();
for (var i = 0; i < sections.length; i++) {
    if(sections[i]){
        var match = myRegexp.exec(sections[i]);
        if(match[1]){
             results[results.length] = match[1];
        }
    }
}
console.log(results); // outputs: ["A", "B", "C", "D", "E", "F"]
alert(results.join(' - ')); // alerts: A - B - C - D - E - F