拆分字符串仅使用一次多个分隔符



我想用不同的分隔符拆分一个字符串。而且只有一次...看来我不明白:-(。 例如:

test/date-2020-02-10Xinfo

我想要的是一个数组,如下所示:

[test,Date,2020-02-10,info]

我尝试了几件事,例如:

this.informations = this.info.map(i => i.split(/(?:/|-|X)+/));

我得到的是 [测试,日期,2020,02,10,信息]

你可以使用声明一个正则表达式,比如

/^([^/]+)/([^-]+)-(d{4}-d{2}-d{2})X(.*)/

请参阅正则表达式演示。

详情

  • ^- 字符串的开头
  • ([^/]+)- 第 1 组:除/以外的一个或多个字符
  • /-/
  • ([^-]+)- 第 2 组:除-以外的一个或多个字符
  • ---
  • (d{4}-d{2}-d{2})- 第 3 组:四位
  • 数字、-、两位数字、-、两位数字
  • X-X
  • (.*)- 组 4:字符串的其余部分。

像使用它一样

this.info.map(i => i.match(regex).slice(1));

.slice(1)将从结果数组中删除第一项String#match(RegExp)返回,即整个匹配值(因为您只需要捕获的子字符串(。

相关内容

最新更新