2010-11-24 4 views
0

Я пытаюсь расширить мини-файл CSS (не спрашивать), чтобы сделать его доступным для чтения. Мне удалось получить большую часть расширения, но я застрял в очень странном случае, который я не могу понять.Как я могу сопоставить отдельные атрибуты CSS с помощью RegEx

У меня есть CSS, который выглядит следующим образом:

.innerRight { 
border:0;color:#000;width:auto;padding-top:0;margin:0; 
} 
a { 
color:#000;text-decoration:underline;font-size:12px; 
} 
p,small,ul,li { 
color:#000;font-size:12px;padding:0; 
} 

Я пытался (.+):(.+); как поиск и \t\1: \2;\n в качестве замены. Функция поиска RegEx действительна, единственная проблема заключается в том, что она соответствует всей строке атрибутов. Я пробовал нежеланный характер, но я не должен помещать его в нужное место.

Вышеприведенный найти RegEx матчей является:

0: border:0;color:#000;width:auto;padding-top:0;margin:0; 
1: color:#000;text-decoration:underline;font-size:12px; 
2: color:#000;font-size:12px;padding:0; 

Хотя те, технически правильные матчи, мне нужно, чтобы соответствовать border:0;, color:#000; и т.д. отдельно для моей замены на работу.

+0

С каким языком программирования вы это делаете? – 2010-11-24 13:23:38

+1

Не было бы проще просто вставить разрыв строки сразу после каждой точки с запятой и игнорировать контекст. Или вам нужно общее решение, которое будет работать с точкой с запятой для eaxmple внутри строки (что маловероятно в CSS)? – RoToRa 2010-11-24 13:24:52

+0

Заменить ';' с '; \ n \ r' ... с языком программирования? – 2010-11-24 13:25:12

ответ

3

Попробуйте это - используйте не жадные соответствия. Это работает для меня

(.+?):(.+?); 
0

Забудьте ободочную кишку. Просто замените все точки с запятой на «; \ n».

В Javascript, например, вы могли бы написать:

text = text.replace(/;/gm,";\n"); 

Я бы уточнить, что для решения проблем, ведущих-пространства и т.д., но это поставит все правила стиля по своей линии.

Смежные вопросы