내가하고 싶은 일이 실제로 쉽다는 느낌이 들지만 잠시 동안 여기에 붙어있어서 약간의 도움이 많이 필요할 것입니다. 높이 평가, 여기에 내가 가진 무엇의 예입니다RegEx를 사용하여 특정 속성 및 값을 가진 모든 CSS 선택기 일치
.selector, .selector2 {
color: #fff;
background: #f4c13b;
opacity: 1;
}
.selector3:hover {
color: red;
opacity: 0;
background: #f4c13b;
}
#selector4.class {
background: #f4c13b;
color: red;
}
@media (min-width:320px) {
selector5 {
opacity: 1;
background: #f4c13b;
}
}
지금, 나는 background: #f4c13b;
이있는 모든 셀렉터에 일치 할, 그래서 캡처 그룹이 반환합니다 .selector, .selector2
및 .selector3:hover
및 #selector4.class
및 selector5
. 여기
/(.*) {[\S\s][^background]*background: #f4c13b;/gm
불행하게도, 그것은 단지 첫 번째 속성으로 background: #f4c13b;
이 선택기 일치하므로 {
전에 뭔가 background: #f4c13b;
그것을 것 하지 경기 :(
여기에 기본적인 아이디어가 있습니다. 모든 선택기가 새 라인에 있으므로, {
전에 모든 것을 일치시키고 캡처 한 다음 background: #f4c13b;
전 모든 것을 선택하고 }
전의 모든 것을 선택하여 selecto를 추출 할 수 있습니다. rs.
정규 표현식을 테스트하기 위해 regexr.com을 사용하고 있으며 자바 스크립트는 RegEx을 사용하고 있다고 생각합니다. 약간의 도움과 설명이 매우 감사 할 것입니다, 감사합니다!
당신이 정규식 사용할 수
regex를 사용하여 특별히 솔루션이 필요합니까? 당신의 유스 케이스는 무엇입니까? CSS3 선택기를 이해할 수있는 CSS를 압축하고 CSS를 압축 한 다음 모든 선택기를 반복하여 CSS를 완전히 구문 분석하는 것이 더 쉬울 수도 있다고 생각합니다. –
사용중인 언어를 알려줘야한다고 생각합니다. Java (또는 심지어 JavaScript)에서는 반복적으로 패턴을 일치시키고 선택기를 추출하여 일종의 데이터 구조로 만듭니다. –
그런데'[^ background]'는'background'를 제외한 모든 문자열과 일치한다는 의미는 아닙니다. 대신에, 'b, a, c, k, g, r, o, u, n, d'를 제외한 임의의 하나의 _character_를 매치 시키라고 말합니다. –