gpt4 book ai didi

javascript - 如何将驼峰式标识符字符串转换为以空格分隔的单词字符串,同时替换分隔符?

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

我已经研究了“how to use regular expressions to insert space into a camel case string”和几个相关问题的答案,下面的代码将生成字符串

Word Double Word A Triple Word UPPER Case Word

不幸的是,输入中出现 {TOKEN} 时需要有一个分隔符。理想情况下,结果应包含逗号分隔符

Word, Double Word, A Triple Word, UPPER Case Word

有没有办法用一个正则表达式来做到这一点? (正则表达式替换可以生成带有前导逗号的字符串。)

这是我到目前为止的代码:

const regex = /({TOKEN})|([A-Z])(?=[A-Z][a-z])|([a-z])(?=[A-Z])/g;
const str = '{TOKEN}NormalWord{TOKEN}DoubleWord{TOKEN}ATripleWord{TOKEN}UPPERCaseWord';
const subst = '$2$3 ';

const result = str.replace(regex, subst);

最佳答案

它看起来不太漂亮,但你可以像这样使用它

const regex = /(^(?:{TOKEN})+|(?:{TOKEN})+$)|{TOKEN}|([A-Z])(?=[A-Z][a-z])|([a-z])(?=[A-Z])/g;
const str = '{TOKEN}NormalWord{TOKEN}DoubleWord{TOKEN}ATripleWord{TOKEN}UPPERCaseWord';
const result = str.replace(regex, (g0, g1, g2, g3) =>
g1 ? "" : g2 ? `${g2} ` : g3 ? `${g3} ` : ", "
);
console.log(result); // => Normal Word, Double Word, A Triple Word, UPPER Case Word

(^(?:{TOKEN})+|(?:{TOKEN})+$) 替代方案将在开始时捕获 {TOKEN} 并字符串末尾,并将完全删除它们(请参阅替换回调方法中的 g1 ? "")。 {TOKEN} 将表示必须用逗号和空格替换的普通标记。其余部分与原始正则表达式中的相同。

请注意,在回调中,g0 代表第 0 组(整场比赛),g1 代表第 1 组,依此类推。

关于javascript - 如何将驼峰式标识符字符串转换为以空格分隔的单词字符串,同时替换分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46352874/

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