Mam listę słów, które muszą być czytelne dla człowieka, takie jak imię od imienia, nazwisko od nazwiska, aw niektórych przypadkach akronimy takie jak ARB, aby pozostały bez zmian. Ta ostatnia została niedawno wprowadzona i spowodowała problem z wyświetlaniem, ponieważ nasze wyrażenie regularne zwraca AR Bs. Oto, co mamy, co wiem, jest niewystarczający dla akronimów:Podziel ciąg PascalCase, z wyjątkiem akronimów
([A-Z][a-z]+)
Znalazłem innych wyrażeń na SO i na innych stronach, które są w stanie pracować z akronimów, jednak działają one na łańcuchach, gdzie skrót jest w zasięgu ciąg, a nie cały ciąg. Potrafię wykonywać proste wyrażenia regularne, ale jest to zbyt skomplikowane, jeśli chodzi o moje umiejętności. Dostarczyłbym innych przykładów do testowania, gdybym je miał, ale wszystkie ciągi działają poprawnie, z wyjątkiem nowego, ARB. Dziękuję Ci.
Aktualizacja: Oto użycie kodu
string friendlyName = Regex.Replace(field.Name, "([A-Z][a-z]+)", " $1", RegexOptions.Compiled).Trim();
Niestety problem ten może skończyć się z nierozwiązanym niejednoznaczności, na przykład nie 'ConfigureIDEAsUser' podzielić na„Configure IDE jako użytkownik”lub„Konfiguracja użytkownika”pomysły? –