小编典典

.NET-如何将以“大写”分隔的字符串拆分为数组?

algorithm

我如何从以下字符串开始:“ ThisIsMyCapsDelimitedString”

…到此字符串:“这是我的大写字母分隔字符串”

首选使用VB.net中最少的代码行,但也欢迎使用C#。

干杯!


阅读 371

收藏
2020-07-28

共1个答案

小编典典

我前一阵子做了。它与CamelCase名称的每个组成部分匹配。

/([A-Z]+(?=$|[A-Z][a-z])|[A-Z]?[a-z]+)/g

例如:

"SimpleHTTPServer" => ["Simple", "HTTP", "Server"]
"camelCase" => ["camel", "Case"]

要将其转换为仅在单词之间插入空格:

Regex.Replace(s, "([a-z](?=[A-Z])|[A-Z](?=[A-Z][a-z]))", "$1 ")

如果您需要处理数字:

/([A-Z]+(?=$|[A-Z][a-z]|[0-9])|[A-Z]?[a-z]+|[0-9]+)/g

Regex.Replace(s,"([a-z](?=[A-Z]|[0-9])|[A-Z](?=[A-Z][a-z]|[0-9])|[0-9](?=[^0-9]))","$1 ")
2020-07-28