仅将几个分隔符分割为字符串

时间:2020-02-12 08:53:35

标签: regex typescript

我想用不同的分隔符分割字符串。而且也只有一次...似乎我不明白:-(。 例如:

test/date-2020-02-10Xinfo

我想要的是一个像这样的数组:

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

我尝试了几件事,例如:

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

我得到的是 [test,Date,2020,02,10,info]

1 个答案:

答案 0 :(得分:1)

您可以使用像这样声明正则表达式

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

请参见regex demo

详细信息

  • ^-字符串的开头
  • ([^\/]+)-第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)返回的第一项,即整个匹配值(因为只需要捕获的子字符串)。