使用各种分隔符拆分字符串,同时保留分隔符
Split string with various delimiters while keeping delimiters
我有以下字符串:
"dogs@cats^horses^fish!birds"
如何取回以下数组?
['dogs','@cats','^horses','^fish','!birds']
本质上,我试图在保留分隔符的同时拆分字符串。我试过 string.match
没有用。
假设这些是您唯一的分隔符,那么您可以这样做:
var string = "dogs@cats^horses^fish!birds";
string.replace(/(@|\^|!)/g, '|').split('|');
我们基本上添加了我们自己的分隔符,在这种情况下 |
并以此为基础拆分它。
这就是你想要的:
str.match(/((^|[^\w])\w+)/g)
虽然没有更多的测试用例,但很难说它有多可靠。
这还假设有大量可能的分隔符。如果它是一个小的固定数量,Samer 的解决方案将是一个很好的方法
我有以下字符串:
"dogs@cats^horses^fish!birds"
如何取回以下数组?
['dogs','@cats','^horses','^fish','!birds']
本质上,我试图在保留分隔符的同时拆分字符串。我试过 string.match
没有用。
假设这些是您唯一的分隔符,那么您可以这样做:
var string = "dogs@cats^horses^fish!birds";
string.replace(/(@|\^|!)/g, '|').split('|');
我们基本上添加了我们自己的分隔符,在这种情况下 |
并以此为基础拆分它。
这就是你想要的:
str.match(/((^|[^\w])\w+)/g)
虽然没有更多的测试用例,但很难说它有多可靠。
这还假设有大量可能的分隔符。如果它是一个小的固定数量,Samer 的解决方案将是一个很好的方法