【发布时间】:2017-02-28 03:01:55
【问题描述】:
我有这样的字符串:
aaaaaas#aa##aa
我想使用split() 和正则表达式来完成这个算法:
- 获取前 5 个字符
- 如果有非单词字符,切到最后一个非单词字符,包括非单词字符
- 如果没有非单词字符,就删掉这5个字符
- 从最后一个剪辑重复直到字符串结束
这个例子的返回应该是这样的:
aaaaa
as#
aa##
aa
甚至可以使用正则表达式和split()?这个
.*([\W]+)\W
给我最后一个非单词字符的字符(例如,它将是aaaaaas#aa##)但是如何将它分组到最大值。 5 个字符,拆分并从上一场比赛结束继续?
【问题讨论】:
-
输入
a#a#a#a#是否拆分为a#、a#、a#、a#,还是拆分为a#a#、a#a#?项目符号 1 说 “获得 5 个字符”,即a#a#a,然后项目符号 2 说 “切到 最后一个 非单词字符” ,即a#a#。但是你的意思是在a#之后删减吗? -
在我(现已删除的答案)
aa#####aa should output aaa##, ##aa, because last word is shorter then 5 characters, sory, I didn't mentioned it. So I should add bullet: if splitted word is last 5 characters or shorter then 5 characters (so they are last characters in string) return it987654340@下的OP评论 -
老实说,您的问题看起来像X/Y problem。您给了我们一些步骤,但我们仍然不知道有什么意义?也许您正在寻找类似的东西:stackoverflow.com/questions/25853393/…?