我有一个字符串
(<<b>>+<<10>>)*<<c>>-(<<x>>+<<y>>)
使用JavaScript,将其解析为最快的方法是什么?
[b, 10, c, x, y]
我有一个字符串
(<<b>>+<<10>>)*<<c>>-(<<x>>+<<y>>)
[b, 10, c, x, y]
"(<<b>>+<<10>>)*<<c>>-(<<x>>+<<y>>)".match(/[a-z0-9]+/g);
// ["b", "10", "c", "x", "y"]
参考文献:
试试这个:
'(<<b>>+<<10>>)*<<c>>-(<<x>>+<<y>>)'.match(/[^(<+>)*-]+/g)
match(/[0-9a-z]+/g)
。 - Benubird(<+>)*-
的字符。 - CD..使用正则表达式
var pattern=/[a-zA-Z0-9]+/g
your_string.match(pattern).
var str = '(<<b>>+<<10>>)*<<c>>-(<<x>>+<<y>>) ';
var arr = str.match(/<<(.*?)>>/g);
// arr will be ['<<b>>', '<<10>>', '<<c>>', '<<x>>', '<<y>>']
arr = arr.map(function (x) { return x.substring(2, x.length - 2); });
// arr will be ['b', '10', 'c', 'x', 'y']
您也可以使用exec
直接获取捕获组:
var regex = /<<(.*?)>>/g;
var match;
while ((match = regex.exec(str))) {
console.log(match[1]);
}
这个正则表达式的好处是你可以在字符串中使用任何字符,包括其他字母数字字符,而不会自动匹配它们。只有在<< >>
中的标记才会被匹配。