gpt4 book ai didi

javascript - 是否有可能有一个正则表达式来解决这个任务?

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

string = '1,23'
当字符串中存在逗号时,我希望正则表达式匹配逗号后的第一个数字( \n ),例如 2 .
有时逗号不会出现。当它不存在时,我希望正则表达式匹配字符串的第一个数字,例如 1 .
此外,我们不能颠倒字符串的顺序来解决这个任务。
我真的被困住了。我唯一的想法是在此之前添加: [,|nothing] .我试过 ''没有任何意义,但这不起作用。

最佳答案

您可以匹配除逗号之外的可选字符序列,然后匹配字符串开头的逗号,然后匹配并捕获数字

/^(?:[^,]*,)?(\d)/
regex demo .
详情
  • ^ - 字符串开头
  • (?:[^,]*,)? - 一个可选的序列
  • [^,]* - 0 除逗号以外的任何字符
  • , - 逗号

  • (\d) - 捕获组 1:任何数字

  • 请参阅 JavaScript 演示:

    const strs = ['123', '1,23'];
    const rx = /^(?:[^,]*,)?(\d)/;
    for (const s of strs) {
    const result = (s.match(rx) || ['',''])[1];
    // Or, const result = s.match(rx)?.[1] || "";
    console.log(s, '=>', result);
    }

    关于javascript - 是否有可能有一个正则表达式来解决这个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63745729/

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