gpt4 book ai didi

javascript正则表达式在小写变为大写的地方拆分

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:36 27 4
gpt4 key购买 nike

我看过this linkthis link和其他少数人,但他们似乎都没有用 pure regex 解决这个问题(......不使用替换等)。

输入字符串:“Vehicle ServicesAUTOMATED GAS DISPENSER”

我想要的输出是:["Vehicle Services", "AUTOMATED GAS DISPENSER"]

这是我的尝试:

var str = 'Vehicle ServicesAUTOMATED GAS DISPENSER'
console.log(str.split(/(?=[a-z][A-Z])/))

[ 'Vehicle Service', 'sAUTOMATED GAS DISPENSER' ]

我在下面有一个解决方案,但我不喜欢它,因为它使用了额外的“替换”方法。我正在寻找基于纯正则表达式的拆分。

var str = 'Vehicle ServicesAUTOMATED GAS DISPENSER'
console.log(str.replace(/([a-z])(?=[A-Z])/, "$1_").split('_'))

[ 'Vehicle Services', 'AUTOMATED GAS DISPENSER' ]

更新:我的要求只是按照帖子中指定的方式拆分输入字符串 - 如图所示,一旦大小写翻转为大写,它就会保持大写直到结束。

最佳答案

这并不完美,但对于在两者之间没有任何标识符的单个拆分,这是我能想到的最好的。

var str = 'Vehicle ServicesAUTOMATED GAS DISPENSER';
var res = str.split(/([A-Z\s]+$)/);
console.log(res);

唯一的问题是它会留下一个带有空字符串的额外数组元素。如果您总是期望只有两个数组元素,则可以将其弹出或忽略它。

JSFiddle https://jsfiddle.net/2ex4cuno/4/

正如@rid 所指出的,您可以将其添加到拆分中,以便只获得两个结果(同样,假设您总是只期望 2,我假设您会这样)。

var str = 'Vehicle ServicesAUTOMATED GAS DISPENSER';
var res = str.split(/([A-Z\s]+$)/, 2);
console.log(res);

关于javascript正则表达式在小写变为大写的地方拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288889/

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