arrays - Node.JS 将可能带有连字符的大写字符串拆分为数组

标签 arrays regex node.js split

我有这个字符串 ActionComedySci-Fi,我想将它分成一个 ["Action", "Comedy", "Sci-Fi"] 之类的数组,但该字符串也可以是 ActionComedyThriller ,它没有连字符,并且这些单词可以按任何顺序排列。

所以我的问题是:如何使用 Node.JS 按大写字母拆分字符串并将它们包含在同一数组列中,即使它们有连字符?

我尝试使用 "ActionComedySci-Fi".split(' ')[0].match(/[A-Z]*[^A-Z]+/g); 但只返回 ["Action", "Comedy", "Sci-", "Fi"];

最佳答案

而不是split,您可以使用match使用此前瞻正则表达式:

/([A-Z].*?[a-z])(?=[A-Z]|$)/gm

([A-Z].*?[a-z]) 将从大写字母匹配到小写字母。

代码:

var re = /([A-Z].*?[a-z])(?=[A-Z]|$)/gm

var s = 'ActionComedySci-Fi'    
var m = s.match(re)
//=> ["Action", "Comedy", "Sci-Fi"]

s = 'ActionComedyThriller'    
m = s.match(re)
//=> ["Action", "Comedy", "Thriller"]

关于arrays - Node.JS 将可能带有连字符的大写字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712175/

相关文章:

node.js - Socket 1.0 重复连接多次

python - 对 numpy 屏蔽数组的操作给出屏蔽的无效值

c - 增加 vector 地址并将其分配给指针

c++ - 未处理的表达式数组 C++

javascript - jQuery-UI sortable - 更新后同步数组(模型)

php - 使用正则表达式验证 ISBN 编号

javascript - 设置系统代理时,node.js 发出本地主机客户端请求

javascript - 用于至少一个字母表 (A-z) 的名称验证的正则表达式

python - 如何编写一个 python 正则表达式否定环视,其中两个断言都必须为真?

mysql - 删除和插入行mysql