2012-03-12 2 views
0

CSS 파일의 규칙 을 추출 할 정규 표현식을 찾으려고합니다. 나는 스타일 선언, 단순히 규칙 (선택자)을 원하지 않는다.RegEx를 사용하여 CSS 파일에서 선택기 만 추출 하시겠습니까?

내 정규 표현식은 다음 항목에 맞게 예상이 예에서
body, p, table, td, th, br, div, span { 
    /* Some styles here */ 
} 

/* This is a test */ 
h1 { 
    /* Some styles here */ 
} 

a:hover { 
    /* Some styles here */ 
} 

-moz-any(input[type="text"], input[type="radio"]) { 
    /* Some styles here */ 
} 

: 몸, P, 테이블, TD, 일, BR, DIV, 스팬, H1 여기에 내가 함께 일하고 있어요 샘플 CSS 파일입니다 , a : hover, -moz-any (입력 [type = "텍스트"], 입력 [type = "라디오"])

다음은 정규식에서의 나의 시도입니다. 작동하는 동안/* 테스트 */주석이며 중괄호도 포함됩니다. 이상적으로 그것들은 생략 될 것입니다.

(}{0,})([^}]*)({) 

이 문제에 대한 도움을 주시면 감사하겠습니다. 미리 많은 감사드립니다!

나는 이것이 훌륭한 CSS 파일이 아닙니다. 그것은 단순히 파싱을 테스트하기 위해 생각해 낸 테스트 파일입니다.

+4

등이 표시됩니다, 당신은 적절한 파서를 사용하여 오프 더 복잡합니다. – Qtax

+1

네 가지 : 1) 규칙과 선택자는 같은 것이 아닙니다. 선택자를 찾고 있습니다. 2)': -moz-any()'는 가상 클래스이므로 앞에':'가 필요합니다. 3) 정규 표현식을 구현하는 언어는 무엇입니까? 자바 스크립트 정규식 인 경우 관련 용어로이 사이트를 검색 할 수있는 기존 질문이 있습니다. 4) 복잡한 스타일 시트로 작업하면 정규 표현식으로 멀리 가지 않을 것입니다. – BoltClock

+0

볼트 - 용어가 틀릴 수도 있음을 알고 있습니다. 나는 결코 CSS 전문가가 아닙니다. 나는 - 모즈 - 필요한 모든 것을 몰랐다. 어느 쪽이든, 요점은 내가 그것을 잡고 싶다는 것입니다. 또한, 나는 이것을 C#에서 구현하고있다. Qtax - RegEx가이 일을 복잡하게 만드는 요인은 무엇입니까? 내 RegEx-Foo가 정말 안좋아 :) –

답변

0

RegEx를 사용하여 솔루션을 얻을 수 없었기 때문에 Qtax의 조언을 따르고 CSS3 문법과 함께 적절한 파서를 사용했습니다.

저는이 질문을 답으로 표시하고 있습니다.

@Qtax - 당신이 대답으로 당신의 코멘트를 추가하는 경우, 내가 정규식이 작업을 수행하려면 "올바른"답 :

+1

CSS3 문법을 정의 했습니까? 적절한 파서로 선택한 것은 무엇입니까? – sgtz

0

이 정규 표현식은 하위 패턴 2의 선택자를 잡아냅니다. 파서가 아니기 때문에 주석에서 선택자를 잡아낼 수도 있습니다. 만큼 당신이 항상 당신의 예에서와 같이 귀하의 선언과 같은 줄에 개방 squggley 브래킷을 가지고

(\s|^)(.*?)\s*{ 
1

:

(.+) { 

내가 당신에게를 가져 오는 방법을 보여줍니다 몇 가지 코드를 제공 할 수 있습니다 필요한 경우 그룹으로 지정하십시오. 어떤 언어를 사용하고 있는지 알려주려고 노력하고 있습니다.

관련 문제