gpt4 book ai didi

javascript - 按空格分割字符串,但忽略引号中的空格

转载 作者:行者123 更新时间:2023-11-28 11:01:06 37 4
gpt4 key购买 nike

我想将一个字符串(任何字符串)按空格分割成一个数组,最好使用 split() 方法。但是,我希望忽略引号中的空格。

举个例子:

'word "words in double quotes"'

它应该成为一个数组:

[
'word',
'words in double quotes'
]

我查看了类似的答案,他们通常给出一个数组:

[
'word',
'"words in double quotes"'
]

这不是我要找的。我不想将引号添加到数组元素中。

我可以使用什么正则表达式?

最佳答案

我不认为你想要的可以通过使用 String.prototype.split 来实现单独使用,因为它的使用很可能会导致结果数组中出现空字符串;这就是你给的字符串。如果您需要一个通用的解决方案来解决您的问题,我相信 split 根本不起作用。

如果您的目标是无论实际字符串如何都产生相同的结果,我建议您使用 String.prototype.match 的组合, [].mapString.prototype.replace如图:

代码:

var
/* The string. */
string = 'apples bananas "apples and bananas" pears "apples and bananas and pears"',

/* The regular expression. */
regex = /"[^"]+"|[^\s]+/g,

/* Use 'map' and 'replace' to discard the surrounding quotation marks. */
result = string.match(regex).map(e => e.replace(/"(.+)"/, "$1"));

console.log(result);

<小时/>

所用正则表达式的说明:

  • "[^"]+":捕获除引号之外的两个引号内的任何字符序列(至少 1 个)
  • |:逻辑或。
  • [^\s]+:捕获任意非空白字符序列(至少 1 个)
  • g:全局标志 - 匹配所有出现的指令。

关于javascript - 按空格分割字符串,但忽略引号中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48142763/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com