【问题标题】:i need a regular expression in Javascript to parse my string [closed]我需要 Javascript 中的正则表达式来解析我的字符串 [关闭]
【发布时间】:2020-08-03 07:42:04
【问题描述】:

我的字符串是'apiName_1.0.1.yaml',我需要一个简单的正则表达式或字符串操作来得到如下结果。

名称 - apiName
版本 - 1.0.1

有什么建议吗?

【问题讨论】:

  • 去掉最后5个字符/从最后一个点开始的字符,在_/最后一个_处分割结果,第一部分是名称,第二部分是版本。
  • 请添加您尝试过的代码。
  • 好建议,我试图一次在正则表达式中做所有事情。但是会尝试这个,这会更简单

标签: javascript regex string


【解决方案1】:

如果文件总是yaml 文件,试试这个:

const [, name, version] = 'apiName_1.0.1.yaml'.match(/(.*?)_(.*?)\.yaml/);

尝试正则表达式的好工具:https://regex101.com/

【讨论】:

    【解决方案2】:

    我仅使用字符串操作得出以下答案:

    var str = "apiName_1.0.1.yaml"
    str = str.split('.').slice(0, -1).join('.') // removing file extention
    var [name , version] = str.split("_"); // splitting the string into name and version
    
    console.log(name);
    console.log(version);

    【讨论】:

      【解决方案3】:

      你可以这样做:

      [,name,version] = 'apiName_1.0.1.yaml'.match(/(.*)_([\d\.]*)\./)
      console.log({name, version})

      【讨论】:

      • 感谢所有答案,我接受了所有 3 个,我尝试了所有 3 个并且工作正常,将使用其中一个作为解决方案。
      • @RijuFrancis "我接受了所有 3 个" 您只能将一个答案标记为已接受。如果你接受另一个,前一个将不被接受。选择对您帮助最大的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      相关资源
      最近更新 更多