Регулярное выражение для извлечения на основе заглавных букв - PullRequest
0 голосов
/ 10 января 2019

Привет, пожалуйста, может кто-нибудь помочь с регулярным выражением C #, чтобы разделить на два слова следующим образом:

"SetTable" ->> ["Set", "Table"]
"GetForeignKey" ->> ["Get", "ForeignKey"]  //No split on Key!

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Это можно решить разными способами; один метод следующий

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]);
}
0 голосов
/ 10 января 2019

Попробуйте регулярное выражение ниже

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

код

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...