2016-03-23 21 views
2

Başlıkta, genel olarak std::regex veya daha ziyade normal ifadelerle (ECMAScript sözdizimi ile) ilgili bir sorun olduğunu söylüyorum. Ne yapmak istediğim son derece basit bir CSS dosyası ayrıştırmak - yani benziyor: biriRegex ile CSS ifadesini ayrıştırma

.some_class { 
    margin: 12px; 
} 

ama bu da aşağıdaki gibi görünebilir:

.some_class 
{ 
    margin: 12px; 
} 

Özetlemek gerekirse, ben bu ayrıştırmak için arıyorum "gramer":

$selector$ { 
    $declaration$ : $value$; 
    $declaration$ : $value$; 
    ... 
} 

Bundan nasıl kurtuluruz? Whitespaces bir regex koparmayacak mı yoksa yukarıdakilere ulaşmak için bazı agnostik regex sözdizimi var mı? Öğrenmek için yazdığım kendi özel HTML oluşturucum için bir CSS dosyasını bir dizi kuralı ayrıştırmak istiyorum; Sadece regeekslerin nasıl çalıştığını anlamakta zorlanıyorum. Herhangi bir yardımcı cevap/yorum için teşekkürler!

Bu aradığınız budur

cevap

2

\s boşluk anlamına gelir ve \s* boşluk sıfır veya daha fazla oluşumunu şu anlama gelir:

((:?\.*|#*)+[a-zA-Z0-9_-]+\s*{[^}]*}) 

Demo: https://regex101.com/r/lR4aW1/3

+0

olacak beyanı herhangi bir tür için bu iş/Bunun gibi değer kombinasyonu? Bu senaryoyu hayal edin: h3, .heading3 {border: 3px solid red; } 'veya bunun için ayrı bir ifade tanımlamalı mıyım? – calcyss

+0

oh css sınıflarını doğru almak ister misin? –

+0

evet. Yukarıdaki örneklerden sadece bir tanesi :) :) – calcyss