2011-08-24 4 views
1

쓰기 CSS의 인기있는 방법은 지금과 같다 :이 쓸 지루한 얻을 수미친 정규식 : 추가 이전 CSS 선택기

#report-page aside.sidebar { 
    … 
} 

    #report-page aside.sidebar li { 
    … 
    } 

    #report-page aside.sidebar li a { 
     … 

. 반복되는 부분을 시도하고 자동화하려고합니다. (LESS와 같은 전 처리기는이 문제를 해결,하지만 난이 기존의 응용 프로그램에서 사용할 수 없습니다.)

Espresso.app은 동적 텍스트 조각을 삽입 할 수 있습니다

<!-- The matched suffix allows you to capture information about the text 
     preceding the insertion point. Specify a regular expression here. --> 
    <matched-suffix>(\s+)(is a vegetable)?</matched-suffix> 

    <!-- The transform-into element is a regex replacement expression, and can use 
    the captured strings from matched-suffix to generate a conditional snippet. --> 
    <transform-into>(?2:\1is a vegetable:\1is fantastic and)</transform-into> 

당신이 날은 정규 표현식을 작성하는 데 도움 수 첫 번째 이전 중괄호 {을 찾고 탭과 공백을 제외하고 그 행 앞에있는 것을 반환합니다.

답변

1

LESS와 같은 전 처리기가이 문제를 해결하지만이 기존 앱에서는 사용할 수 없습니다.

예. 가능합니다. 귀하의 프로젝트/프레임 워크는 그것을 지원할 필요가 없으며 전체 CSS를 다시 작성할 필요가 없습니다.

예를 들어 scss의 구문은 CSS의 구문을 완벽하게 지원하므로 .css 파일의 이름을 .scss으로 바꿀 수 있으며 작동하기 만하면됩니다. 그 후 scss 구문을 사용하여 시작할 수 있습니다. 핵 물질 동안

말대꾸/SCS들 도구를 사용하면 백그라운드에서 실행하고 자동으로 매번 파일이 수정되는 .css 파일에 .scss 파일을 변환 할 수있는 --watch 스위치가 http://sass-lang.com/ 참조 :

당신이 sass 구문을 선호하는 경우
sass --scss --watch file.scss:file.css 

, sass은에서와 css, scsssass 형식으로 변환 할 수있는 sass-convert 도구와 함께 제공 :

sass-convert --from css --to sass file.css file.sass 

당신 정규식 질문에 대해,이 시도 :

\s*([^\s].*?)\s*{ 

이 이전과 선택 후 공백/들여 쓰기없이 선택과 일치합니다.

+0

SASS는 에스프레소의 자동 완성 및 구문 강조 표시를 사용합니다. 이것을 줄이기위한 에스프레소 확장은 급하게 작성되었습니다. –

+0

대신 SCSS를 사용해 보셨습니까? – arnaud576875

+0

예, 작동합니다. 그러나 어떻게 그것을 역전 시켜서 * 마지막 * 사건을 발견합니까? –

0
^[^{]+ 

이 정규식은 줄 시작부터 첫 번째 여는 중괄호까지의 모든 텍스트를 찾습니다. 중괄호가없는 행의 전체 행과 일치합니다. 그것이 문제인 경우 끝에는 리터럴 중괄호를 추가하십시오.

^[^{]+\{