我正在尝试将字符串拆分为单词数组,但是我想在每个单词后面保留空格。这就是我正在尝试的:
var re = /[a-z]+[$\s+]/gi;
var test = "test one two three four ";
var results = test.match(re);
我期望的结果是:
[0]: "test "
[1]: "one "
[2]: "two "
[3]: "three "
[4]: "four "
然而,它只匹配每个单词后最多一个空格:
[0]: "test "
[1]: "one "
[2]: "two "
[3]: "three "
[4]: "four "
我究竟做错了什么?
考虑:
var results = test.match(/\S+\s*/g);
这将保证你不会错过任何字符(除了开头的几个空格,但是\S*\s*
可以解决这个问题)
您的原始正则表达式如下:
-
[a-z]+
- 匹配任意数量的字母(至少一个)
-
[$\s+]
- 多为单一角色 -$
, +
或空白。如果该组后面没有量词,则只能匹配一个空格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)