gpt4 book ai didi

javascript - 如何在 javascript 中标记带引号字符串的字符串?

转载 作者:行者123 更新时间:2023-11-29 20:52:06 25 4
gpt4 key购买 nike

标记由 1 个或多个空格分隔。“带引号的字符串”是单个标记。任何其他不以引号开头的都是标记。我尝试过但失败了:

var tokenre = /"[^"]*"|[^"]\S+|\s\s*/g;

例如我想要这个输入

[4,4]  "This is fun"
2 2 +
#

标记为

['[4,4]', '  ', '"This is fun"', '\n ', '2', '  ', '2', ' ', '+', '\n ', '#']

这可以使用以下代码进行测试:

var result = null;
do {
result = tokenre.exec (program);
console.log (result);
} while (result != null);

最佳答案

您似乎想将字符串标记化为空白和非空白字符 block ,但也将 "..." 像引号之间的子字符串分隔成单独的元素。

你可以使用

s.match(/"[^"]*"|\S+|\s+/g)

参见 regex demo .

详情

  • "[^"]*" - ",然后是引号以外的任何 0+ 个字符,然后是 " ( 注意:要匹配常规转义序列,您需要将其替换为 "[^"\\]*(?:\\[\s\S][^"\\]* )*")
  • | - 或者
  • \S+ - 1+ 个非空白字符
  • | - 或者
  • \s+ - 1+ 个空白字符。

JS 演示:

var s = "[4,4]  \"This is fun\"\n2  2 +\n#";
console.log(s.match(/"[^"]*"|\S+|\s+/g));

关于javascript - 如何在 javascript 中标记带引号字符串的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51387601/

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