C# 基于大写字母提取的正则表达式
嗨,有人能帮我把C#regex分成以下两个词吗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
"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]);
}