假设我有一个字符串testTESTCheckTESTAnother,我想用几句话将它拆分,就像那样["test", "TEST", "Check", "TEST", "Another"]。输入:只允许使用 [A-Za-z] 字符testTESTCheckTESTAnother代码:我对正则表达式的最佳尝试是:"testTESTCheckTESTAnother".match(/^[a-z]+|[A-Z][a-z]*/g)Output: ["test", "T", "E", "S", "T", "Check", "T", "E", "S", "T", "Another"]我尝试了负前瞻,但它也不起作用:"testTESTCheckTESTAnother".match(/?![A-Z][a-z]+)[A-Z]+/g)Output: ["TESTC", "TESTA"]期望的输出:["test", "TEST", "Check", "TEST", "Another"]其他输入输出:input: "ITest"output: ["I", "Test"]input: "WHOLETESTWORD"output: ["WHOLETESTWORD"]input: "C"output: ["C"]
2 回答

哔哔one
TA贡献1854条经验 获得超8个赞
使用这个正则表达式: ^[a-z]+|((?![A-Z][a-z])[A-Z])+|[A-Z][a-z]+
在https://regex101.com/r/5r8MzJ/1 上查看它的实际应用
解释。我们将捕获三种替代模式。
^[a-z]+
仅在字符串的开头接受一系列小写字母。
((?![A-Z][a-z])[A-Z])+
如果后跟小写字母,则接受除最后一个以外的一系列大写字母
[A-Z][a-z]+
接受一系列一个大写字母和至少一个小写字母。
添加回答
举报
0/150
提交
取消