-5

我有一些识别器。例如:'basicHtmlConverter。'
我需要将他的一些词分开:'基本 Html 转换器'。
我想使用Regex.Split一些模式。

4

2 回答 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 回答