如果参数被空格分隔,如何从字符串中解析参数

时间:2019-01-21 00:57:28

标签: javascript node.js regex parsing

我正在做一个项目,目前被卡住了。

我正在尝试从这种格式的字符串中解析

  

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

该字符串由用户提供,例如,这是用户输入:

  

Foo Bar 15 0 0敏捷的棕色狐狸跳过了懒狗

我怎么会得到这样的东西?

  

['Foo Bar',15、0、0,“快速的棕色狐狸跳过了懒狗”]

注意:字符串可以包含整数

谢谢。

2 个答案:

答案 0 :(得分:1)

正则表达式似乎是一个合理的解决方案,但是您可以通过调用.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);

答案 1 :(得分:0)

我个人使用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"]

如果有帮助,不要忘记投票并接受答案! 谢谢!