我有一个这种类型的字符串:
string = "test1; test2, test3 test4;test5"
我需要拆分它并得到一个包含 5 个单词的数组。我这样做:
let arrayTo:string[] = string.split(/;|,|, |; | /);
但我得到的是一个包含 7 个元素的数组,其中两个是空字符串:
["test1","","test2","","test3","test4","test5"]
我想考虑 , 和 ; 后跟空格作为一个实体并拆分它们,但是使用此正则表达式,它也会在这些字符后面的空格上拆分。但我还需要仅按空格拆分(在这种情况下,它正确地将test3
和test4
拆分为两个实体(。
正确的方法是什么?
您可以使用
string.split(/[;,]s*|s+/)
正则表达式匹配
[;,]s*
-;
或,
,然后是 0+ 空格|
- 或s+
- 1+ 空格。
JS演示:
string = "test1; test2, test3 test4;test5";
console.log(string.split(/[;,]s*|s+/));