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
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.

Düzenli ifade bir e-posta adresi doğru...
Satır eşleştirmek için düzenli ifade e...
Telefon numarası için kapsamlı bir düz...
Nasıl Düzenli İfade, JavaScript için b...
Eğer bir dize geçerli bir adres olup o...