Как разобрать параметры из строки, если они разделены пробелом - PullRequest
0 голосов
/ 21 января 2019

Я работаю над проектом, и в настоящее время я застрял.

Я пытаюсь разобрать строку в этом формате

<string> <integer> <integer> <integer> <string>

Строка задается пользователем, например, это ввод пользователя:

Foo Bar 15 0 0 Быстрая коричневая лиса перепрыгивает через ленивую собаку

Как бы я получил что-то подобное?

['Foo Bar', 15, 0, 0, "Быстрая коричневая лиса перепрыгивает через ленивую собаку"]

Примечание: строки могут содержать целые числа

Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Regex кажется разумным решением, но вы можете сделать это одним вызовом .split.

Когда вы включаете группу захвата ((...)) в регулярное выражение, которое вы передаете .split, захваченный текст включается в массив результатов.Это означает, что вы можете разделить текст вокруг чисел, а также записать числа с помощью шаблона, например /\s+(\d+)\s+(\d+)\s+(\d+)\s+/.

Например:

var input = "Foo Bar 15 0 0 The quick brown fox jumps over the lazy dog"
var regex = /\s+(\d+)\s+(\d+)\s+(\d+)\s+/;
var result = input.split(regex);

console.log(result);
0 голосов
/ 21 января 2019

Я бы лично использовал RegEx.Формат строки всегда один и тот же?

Если это так ... Я бы соответствовал целочисленным значениям:

"Foo Bar 15 0 0 The quick brown fox jumps over the lazy dog".match(/(\d+\s)+/g)

Тогда я бы разделил, используяПолучившееся совпадение.

let numbers = "Foo Bar 15 0 0 The quick brown fox jumps over the lazy dog".match(/(\d+\s)+/g)
["15 0 0 "]
let words = "Foo Bar 15 0 0 The quick brown fox jumps over the lazy dog".split(numbers[0].trim())
(2) ["Foo Bar ", " The quick brown fox jumps over the lazy dog"]

Не забудьте поднять голос и принять ответ, если это поможет!Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...