我有一些识别器。例如:'basicHtmlConverter。'
我需要将他的一些词分开:'基本 Html 转换器'。
我想使用Regex.Split
一些模式。
问问题
73 次
2 回答
0
试试这个Regex
:
([a-z]+)([A-Z]?[a-z]*)+
你的代码应该是这样的:
var nameList = new List<string>();
var inputString = "canClearScene";
foreach (Capture capture in Regex.Matches(inputString, "(?<name>[a-z]+)(?<name>[A-Z]?[a-z]*)+")[0].Groups["name"].Captures)
{
nameList.Add(capture.Value);
}
或LINQ
方式:
var nameList = (from Capture capture in Regex.Matches(inputString, "(?<name>[a-z]+)(?<name>[A-Z]?[a-z]*)+")[0].Groups["name"].Captures
select capture.Value).ToList();
于 2012-07-31T06:52:27.483 回答
0
不需要正则表达式:您只需要扫描一次字符串并通过 LINQ 完成任务。
yourString.Select(c => string.Format(Char.IsUpper(c) ? " {0}" : "{0}", c));
这将为您提供一个IEnumerable<string>
包含您需要的所有数据的对象,它可以成为您需要的对象,如下所示:
string[] output = string.Split(" ", string.Join("", yourString.Select(c => string.Format(Char.IsUpper(c) ? " {0}" : "{0}", c)));
基本上,流程是这样的:
- 插入所需的任何空间
- 打包数据
- 拆分令牌
于 2012-07-31T07:09:44.483 回答