我正在尝试编写一个将单词拆分成字母的函数,我得到了一个奇怪的结果:
'abc'.split(/(a|b|c)/)
Run Code Online (Sandbox Code Playgroud)
得到:
["", "a", "", "b", "", "c", ""]
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我在Python中看到了相同的结果,所以显然问题就在于我!
>>> re.split( '(a|b|c)', 'abc')
['', 'a', '', 'b', '', 'c', '']
Run Code Online (Sandbox Code Playgroud)
问题是,为什么字母之间插入了空字符串?我期望
["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 7
您可以使用全局正则表达式进行字符串匹配,而不是拆分...
'abc'.match(/(a|b|c)/g); // ["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)
这更有意义,因为你真正关心的只是匹配,而不是匹配之间的匹配.
如果你想匹配a到z中的任何字符,你可以这样做......
'abc'.match(/([a-z])/gi);
Run Code Online (Sandbox Code Playgroud)
我也使它不区分大小写匹配大写.
有您的分隔符之间空字符串,因为你是分裂的那些信.a,b并且c是"分隔符"标记,并且''是您之间的实际"单词".
例如,如果你是分裂"x,y"的',',你希望找回"X",""和'Y’.如果拆分",y"上',',你回来"","",和'y’.所以,如果你分割"ay"上'a',你的输出是"","a"和"Y".
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |