我正在做一个项目,目前被卡住了。
我正在尝试从这种格式的字符串中解析
<string> <integer> <integer> <integer> <string>
该字符串由用户提供,例如,这是用户输入:
Foo Bar 15 0 0敏捷的棕色狐狸跳过了懒狗
我怎么会得到这样的东西?
['Foo Bar',15、0、0,“快速的棕色狐狸跳过了懒狗”]
注意:字符串可以包含整数
谢谢。
答案 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"]
如果有帮助,不要忘记投票并接受答案! 谢谢!