gpt4 book ai didi

javascript - 如何根据大写字母拆分字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:59:51 25 4
gpt4 key购买 nike

我有一个字符串需要根据大写字母拆分,下面是我的代码

let s = 'OzievRQ7O37SB5qG3eLB';
var res = s.split(/(?=[A-Z])/)
console.log(res);

但是有一个转折,如果大写字母是连续的,我需要正则表达式“吃掉”直到这个序列结束。在上面的例子中它返回

..R,Q7,O37,S,B5q,G3e,L,B

结果应该是

RQ7,O37,SB5q,G3e,LB

想法?谢谢。

最佳答案

您需要将这些 block 与 /[A-Z]+[^A-Z]*|[^A-Z]+/g 匹配,而不是使用零宽度断言模式进行拆分,因为后者 (在你的情况下,它是一个正向前瞻,只有正则表达式)将必须检查字符串内的每个位置,并且一旦找到环视模式就不可能告诉正则表达式跳过一个位置。

s = 'and some text hereOzievRQ7O37SB5qG3eLB';
console.log(s.match(/[A-Z]+[^A-Z]*|[^A-Z]+/g));

参见 online regex demo at regex101.com .

详细信息:

  • [A-Z]+ - 一个或多个大写 ASCII 字母
  • [^A-Z]* - 零个或多个(允许匹配仅大写的 block )大写 ASCII 字母以外的字符
  • | - 或者
  • [^A-Z]+ - 除了大写 ASCII 字母以外的一个或多个字符(以允许匹配字符串开头的非大写 ASCII 字母。

g 全局修饰符将使 String#match() 返回所有找到的非重叠匹配项。

关于javascript - 如何根据大写字母拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42804948/

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