gpt4 book ai didi

javascript - 用空格分割字符串,保留带引号的段,允许转义引号

转载 作者:行者123 更新时间:2023-12-03 01:32:19 33 4
gpt4 key购买 nike

我目前使用此正则表达式来按所有空格分割字符串,除非它位于带引号的段中:

keywords = 'pop rock "hard rock"';
keywords = keywords.match(/\w+|"[^"]+"/g);
console.log(keywords); // [pop, rock, "hard rock"]

但是,我也希望能够在关键字中包含引号,如下所示:

keywords = 'pop rock "hard rock" "\"dream\" pop"';

这应该返回

[pop, rock, "hard rock", "\"dream\" pop"]

实现这一目标的最简单方法是什么?

最佳答案

您可以将正则表达式更改为:

keywords = keywords.match(/\w+|"(?:\\"|[^"])+"/g);

而不是 [^"]+ 你有 (?:\\"|[^"])+ 它允许 \" 或其他字符,但不是未转义的引号。

一个重要的注意事项是,如果您希望字符串包含文字斜杠,则应该是:

keywords = 'pop rock "hard rock" "\\"dream\\" pop"'; //note the escaped slashes.

此外,\w+[^"]+ 之间存在轻微不一致 - 例如,它将匹配单词 "ab*d",但不是 ab*d(不带引号)。请考虑使用 [^"\s]+ 代替,它将匹配非空格。

关于javascript - 用空格分割字符串,保留带引号的段,允许转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4031900/

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