语言不可知论者。
提供任何语言的解决方案,首选常用脚本语言。
处理字符串...我们将在数组中使用这 4 个作为示例。
examples = ["The quick brown fox jumps over the lazy dog.(JSON-CAT5).tar.gz",
"The quick brown fox jumps over the lazy dog.(JSON-CAT5).txt",
"The quick & swift mule, kicks the lazy dev.txt",
"Now we-come,to.the_payoff.txt"]
根据以下规则对其进行转换。
- 无论任何其他规则如何,首字母总是大写。
- 每个单词都大写,除非它被规则 3 或 4 覆盖。
- 出现在白名单中的子字符串会保留大小写。在我们的例子中
["the", "JSON"]
- 从字符串中清除出现在黑名单中的子字符串。在我们的例子中
["-CAT5","(",")"]
- 匹配正则表达式的子字符串
/(\.tar)?\.[^.]*$/i
始终为小写。 - 标点符号列表例如
[" ", "_", ",", "-"]
被转换为 ["."] - 多个
"."
即。"..."
替换为单个"."
(即挤压。) - 分隔符“.”、黑名单、白名单都应该可以轻松互换,只需将它们作为 vars / arrays 提供在顶部是完全可以接受的。
在这种情况下,我们最终会得到:
The.Quick.Brown.Fox.Jumps.Over.the.Lazy.Dog.JSON.txt
The.Quick.Brown.Fox.Jumps.Over.the.Lazy.Dog.JSON.tar.gz
下面提供了答案,希望看到其他语言的替代方案。
更新
向测试用例添加了更多示例字符串。