Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#。在单词上拆分标识符_C#_Regex - Fatal编程技术网

C#。在单词上拆分标识符

C#。在单词上拆分标识符,c#,regex,C#,Regex,我有一些识别器。例如:“basicHtmlConverter”。 我需要在一些词上拆分他的内容:“基本Html转换器” 我想用一些模式来使用Regex.Split。试试这个Regex: ([a-z]+)([A-Z]?[a-z]*)+ 您的代码应该是这样的: var nameList = new List<string>(); var inputString = "canClearScene"; foreach (Capture capture in Regex.Matches(in

我有一些识别器。例如:“basicHtmlConverter”。
我需要在一些词上拆分他的内容:“基本Html转换器”

我想用一些模式来使用
Regex.Split

试试这个
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);
}
string[] output = string.Split(" ", string.Join("", yourString.Select(c => string.Format(Char.IsUpper(c) ? " {0}" : "{0}", c)));

不需要regexp:只需扫描字符串一次,然后通过LINQ完成任务

yourString.Select(c => string.Format(Char.IsUpper(c) ? " {0}" : "{0}", c));
这将为您提供一个
IEnumerable
对象,其中包含您所需的所有数据,它可以成为您所需的内容,如下所示:

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);
}
string[] output = string.Split(" ", string.Join("", yourString.Select(c => string.Format(Char.IsUpper(c) ? " {0}" : "{0}", c)));
基本上,流程是这样的:

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);
}
string[] output = string.Split(" ", string.Join("", yourString.Select(c => string.Format(Char.IsUpper(c) ? " {0}" : "{0}", c)));
  • 插入所需的任何空间
  • 打包数据
  • 分割代币

您的问题到底是什么?一些细节:有一些字符串包含一个复合词—“baseAdapter”、“canClearScene”等。我需要C代码将这些字符串拆分为:“baseAdapter”、“can Clear Scene”等。