有没有一种方法可以基于多个分隔符拆分字符串,同时将某些分隔符保留在拆分数组中?所以,如果我有字符串,"This is a-weird string,right?"
我想得到
["This", "is", "a", "-", "weird", "string", ",", "right", "?"]
我尝试使用string.split(/([^a-zA-Z])/g)
,但是我不想保留空格。该指南似乎是我可以使用的东西,但是我对正则表达式的理解还不足以知道如何将两者混为一谈。
您可以使用
console.log("This is a-weird string,right?".match(/[^\W_]+|[^\w\s]|_/g))
正则表达式匹配:
[^\W_]+
-一个或多个字母数字字符|
- 要么[^\w\s]
-除单词和空格外的任何字符|
- 要么_
-下划线。请参阅regex演示。
完全了解Unicode的正则表达式将是
console.log("This is ą-węird string,right?".match(/[\p{L}\p{M}\p{N}]+|[\p{P}\p{S}]/gu))
这里,
[\p{L}\p{M}\p{N}]+
-一个或多个Unicode字母,变音符号或数字|
- 要么[\p{P}\p{S}]
-单个标点符号或符号char。请参阅此正则表达式演示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句