Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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,嗨,有人能帮我把C#regex分成以下两个词吗 "SetTable" ->> ["Set", "Table"] "GetForeignKey" ->> ["Get", "ForeignKey"] //No split on Key! 试试下面的正则表达式 (?![A-Z][a-z]+Key)[A-Z][a-z]+|[A-Z][a-z]+Key 代码 分裂 matches.OfType<Match>().Select(x => x.Value).To

嗨,有人能帮我把C#regex分成以下两个词吗

"SetTable" ->> ["Set", "Table"]
"GetForeignKey" ->> ["Get", "ForeignKey"]  //No split on Key!
试试下面的正则表达式

(?![A-Z][a-z]+Key)[A-Z][a-z]+|[A-Z][a-z]+Key
代码

分裂

matches.OfType<Match>().Select(x => x.Value).ToArray().Dump();      
匹配.OfType().Select(x=>x.Value.ToArray().Dump();

这可以用不同的方法解决;一种方法如下

string source = "GetForeignKey";

var result = Regex.Matches(source, "[A-Z]").OfType<Match>().Select(x => x.Index).ToArray();
string a, b;
if (result.Length > 1)
{
    a = source.Substring(0, result[1]);
    b = source.Substring(result[1]);
}
string source=“GetForeignKey”;
var result=Regex.Matches(源“[A-Z]”)。of type()。选择(x=>x.Index.ToArray();
a、b串;
如果(result.Length>1)
{
a=源.子字符串(0,结果[1]);
b=源子字符串(结果[1]);
}

你到底想做什么?你是否总是只尝试分离第一个“单词”(即,总是只在字符串中的第一个大写字符上拆分)?我只是想让你知道:
var myArray=Regex.Split(myString)(?谢谢!是的,基本上分为动词/名词。第一个单词非常简单,后面的所有内容都是名词。现在让我们用类似于
“SetAccessDate”
;-)的东西来尝试一下)我看到的与您使用“SetAccessDate”时看到的完全相同“。如果你看不到与我相同的内容,那将是非常非常令人惊讶的,因为这只涉及到相应地设置小提琴中的输入字符串(附带说明,提供小提琴是值得称赞的,即使你的答案只适用于几个有限的词,而不是按照OP的要求)我所看到的——如果你愿意尝试的话,你会看到的——并不是OP所要求的结果。我相信你现在所做的是误导性的,我放了一个样本数据,如果你放
SetAccessDate
它会将它拆分为
Set,Access,Date
。告诉我一个字符串,它不能满足OP的要求吗?太多了lery在这里……或者你真的相信OP只是问他们问题中的两个具体字符串示例吗?我再次问你,你有没有失败的字符串/模式示例?我真的很想看到我的错误。请给我一个示例
string source = "GetForeignKey";

var result = Regex.Matches(source, "[A-Z]").OfType<Match>().Select(x => x.Index).ToArray();
string a, b;
if (result.Length > 1)
{
    a = source.Substring(0, result[1]);
    b = source.Substring(result[1]);
}