Привет, пожалуйста, может кто-нибудь помочь с регулярным выражением C #, чтобы разделить на два слова следующим образом:
"SetTable" ->> ["Set", "Table"] "GetForeignKey" ->> ["Get", "ForeignKey"] //No split on Key!
Это можно решить разными способами; один метод следующий
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]); }
Попробуйте регулярное выражение ниже
(?![A-Z][a-z]+Key)[A-Z][a-z]+|[A-Z][a-z]+Key
c # код
var matches = Regex.Matches(input, @"(?![A-Z][a-z]+Key)[A-Z][a-z]+|[A-Z][a-z]+Key"); foreach (Match match in matches) match.Groups[0].Value.Dump();
для расщепления
matches.OfType<Match>().Select(x => x.Value).ToArray().Dump();
Fiddle