gpt4 book ai didi

javascript - 正则表达式拆分字符串 'DB415.DBD21.3'

转载 作者:行者123 更新时间:2023-11-30 07:57:58 26 4
gpt4 key购买 nike

我正在尝试拆分一个参数(作为字符串接收)以便能够使用这些值来执行某些操作。例如,字符串将是:

DB415.DBX12.3

我会要求它拆分为:

  1. DB:开头的非数字字符 - 使用正则表达式拆分 /(?:^[A-Z]+)/
  2. 415:数字字符 (s) - 使用正则表达式拆分 /^(?![A-Z]+)(?:\d+)/
  3. DBX:非数字字符 (s) - 似乎无法正确处理,尝试了 /^(?!^[A-Z]+)(?!\d+)(?!\.)(? :[A-Z]+)/
  4. 12: 数字字符
  5. 3:数字字符(s)

任何有关 3、4 和 5 的帮助都会非常有帮助!

编辑:这是针对 Javascript 的,理想情况下,我想在一个数组中获取这 5 个参数。

最佳答案

您可以为此使用匹配正则表达式:

/^(\D*)(\d+)\.(\D*)(\d+)\.(\d+)$/

参见 regex demo

我只是按照你的逻辑,正则表达式匹配你列举的所有步骤。

JS 演示:

var re = /^(\D*)(\d+)\.(\D*)(\d+)\.(\d+)$/; 
var str = 'DB415.DBX12.3';
var res = str.match(re);
if (res) {
document.body.innerHTML = "<pre>" + JSON.stringify(res, 0, 4) + "</pre>";
}

对正则表达式的评论:

  • \D 匹配除数字以外的任何字符
  • \d 匹配任何数字
  • \D* 匹配零个或多个数字(如果必须至少有一个,替换为 \D+)
  • \. 匹配文字点。如果不止一个点,比如一个连字符,您将需要替换为 [.-] 之类的字符类,将连字符保留在末尾。

关于javascript - 正则表达式拆分字符串 'DB415.DBD21.3',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35342217/

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