У меня есть эта строкаКак разбить эту строку с помощью JavaScript?
(<<b>>+<<10>>)*<<c>>-(<<x>>+<<y>>)
Использование JavaScript, что это самый быстрый способ, чтобы разобрать это в
[b, 10, c, x, y]
У меня есть эта строкаКак разбить эту строку с помощью JavaScript?
(<<b>>+<<10>>)*<<c>>-(<<x>>+<<y>>)
Использование JavaScript, что это самый быстрый способ, чтобы разобрать это в
[b, 10, c, x, y]
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]);
}
Это регулярное выражение имеет то преимущество, что вы можете использовать что-либо в строке, включая другие буквенно-цифровые символы, без автоматического согласования. Выполняются только те жетоны в << >>
.
Я хотел бы предложить:
"(<<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
как понять регулярное выражение внутри матча? Можете ли вы объяснить .. просто спрашиваете? –
@MESSIAH: его соответствующие символы, которые не являются '(<+>) * -'. –
использование регулярных выражений
var pattern=/[a-zA-Z0-9]+/g
your_string.match(pattern).
Является ли структура исходной строки неизменной? – StackFlower
Предлагаю прочитать о проблеме [XY Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Было бы интересно узнать больше о реальной проблеме, которую вы пытаетесь решить здесь. Похоже, вы пытаетесь написать механизм синтаксического анализа? Возможно, если вы немного поразмышляете над этим, вы можете получить больше ответов, которые действительно полезны, а не прямое решение проблемы, которую вы поставили в вопросе в настоящее время. – Spudley
Могу ли я спросить, откуда эта строка, и какова целевая цель угловых скобок? –