我想用不同的分隔符分割字符串。而且也只有一次...似乎我不明白:-(。 例如:
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]
答案 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)
返回的第一项,即整个匹配值(因为只需要捕获的子字符串)。