gpt4 book ai didi

Javascript - 如果下一个字符不是,则使用正则表达式拆分以返回所有匹配项

转载 作者:行者123 更新时间:2023-12-04 08:41:36 25 4
gpt4 key购买 nike

使用 .split()使用正则表达式,使用带有多个字符的空格执行拆分的正确方法是什么?
例如,使用如下字符串:const str = 'Supreme > 22 < 27 < 34> 185';预期结果是:const output = ['Supreme', '> 22', '< 27', '< 34', '> 185'];我曾尝试使用 .split()带图案/.+?(?=>|<)/ ,但它返回相反的结果:const opposite = [ '', '', '', '', '> 185' ]

最佳答案

您可以使用

/\s*(?=[><])/
regex demo .它匹配:
  • \s* - 零个或多个空白字符
  • (?=[><]) - 紧随其后的是 <> .

  • 由于模式可以匹配空字符串,因此结果数组中将有空项目,需要删除,例如与 .filter(Boolean) .
    请参阅 JavaScript 演示:

    const str = 'Supreme > 22 < 27 < 34> 185';
    console.log(str.split(/\s*(?=[><])/).filter(Boolean));

    匹配方法可以使用

    console.log('Supreme > 22 < 27 < 34> 185'
    .match(/(?:^|[<>])[\s\S]*?[^\s<>](?=\s*[<>]|$)/g))

    regex demo .细节:
  • (?:^|[<>]) - 字符串开头或 <>
  • [\s\S]*? - 任何零个或多个字符,尽可能少
  • [^\s<>] - 除了空格之外的任何字符,><
  • (?=\s*[<>]|$) - 紧跟任何 0+ 个空白字符,然后是 <>或字符串结尾。
  • 关于Javascript - 如果下一个字符不是,则使用正则表达式拆分以返回所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64542979/

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