CamelCase veya TitleCase bölmek için düzenli ifade (gelişmiş) | Netgez.com
SORU
29 EYLÜL 2011, PERŞEMBE


CamelCase veya TitleCase bölmek için düzenli ifade (gelişmiş)

brilliant RegEx bir camelCase veya TitleCase ifadenin bir parçası ayıklamak için buldum.

 (?<!^)(?=[A-Z])

Beklendiği gibi çalışır:

  • deÄŸer ->deÄŸer
  • - ^camelValue . deve / DeÄŸer
  • - ^TitleValue . BaÅŸlık / DeÄŸer

Örneğin Java: ile

String s = "loremIpsum";
words = s.split("(?<!^)(?=[A-Z])");
//words equals words = new String[]{"lorem","Ipsum"}

Benim sorunum bazı durumlarda çalışmaz

  • Durum 1: DEÄžER ->V / A / L / U / E
  • Durum 2: - ^ eclipseRCPExt . R C tutulma / / / P / Ext

Bence, sonuç olmalıdır:

  • Durum 1: DEÄžER
  • Durum 2: tutulma / BIP / Ext

N büyük karakter verilen başka bir deyişle:

  • eÄŸer n karakter küçük harf karakter tarafından takip edilirse, gruplar olmalıdır: (n-1 karakter) / (n-inci alt char karakter)
  • eÄŸer n karakter sonunda grup olmalıdır: (n karakter).

Bu normal ifadenin geliştirmek için nasıl bir fikriniz var mı?

CEVAP
29 EYLÜL 2011, PERŞEMBE


Aşağıdaki normal ifade örnekleri yukarıdaki: herkes için çalışır

public static void main(String[] args)
{
    for (String w : "camelValue".split("(?<!(^|[A-Z]))(?=[A-Z])|(?<!^)(?=[A-Z][a-z])")) {
        System.out.println(w);
    }
}   

Dizenin başında eşleşir göz ardı değil, aynı zamanda bir büyük harf bir büyük harf öncesinde olduğu maçlar göz ardı etmek için negatif geriye ilerleme zorlayarak çalışır. Bu gibi davalara bakan "DEĞER".

Kendi başına düzenli ilk bölümü başarısız "" arasında bölünmüş etmeyerek "" ve "". Ext RPC eclipseRCPExt Bu ikinci fıkra amacı: (?<!^)(?=[A-Z][a-z]. Bu madde küçük harf tarafından izlenen her harf önce bir bölünme, dize başında hariç sağlar.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • DorkmanScott

    DorkmanScott

    14 NİSAN 2006
  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013