2012-03-26 2 views
1

Я пытаюсь написать метод в C# для преобразования PX в EM и наоборот в файле css.Regex для соответствия em в файле css

Чтобы выполнить это, я хочу использовать регулярное выражение для соответствия значению (например, 12em) и преобразовать его в px.

До сих пор у меня есть следующее выражение

(.*)^([0-9,-\.]+)(px)(.*) 

это соответствует

border: solid 3em gray; 
margin: 1.2em 2em 3em 4em;  
margin: 1em 2em  3em 4em ; 

но не

width:50.1em; 
width: 50.1em; 

Любое предложение?

ответ

2

Вы можете использовать гораздо более простую иглу, как этот.

([\d.])+em 

Возможно, существуют потенциальные случаи, когда это не сработает, но они немногочисленны и находятся далеко друг от друга, например.

background-image: url('http://site.tld/something/5em/not/likely/'); 

Если вам нужно предотвратить что-то подобное, получите парсер CSS.

demo

0

Узор, который работал для меня

(.*?:?)([0-9,-\.]+)\s*(em)(.*) 

Благодаря alextercete для указания на этот регулярное выражение Helper.

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