我寫了一個正則表達式來得到一個CSS屬性大小:正則表達式來獲取CSS屬性的大小值?
/(([+-]?\d*\.?\d+(\s)*(px|em|ex|pt|in|pc|mm|cm)?)|thin|medium|thick)(\s|;|$)/i
但由於某種原因它無法按照預期工作。例如,當我運行以下命令:
preg_match_all('/(([+-]?\d*\.?\d+(\s)*(px|em|ex|pt|in|pc|mm|cm)?)|thin|medium|thick)(\s|;|$)/i',
"border-bottom:1px solid #99999;", $matches);
它輸出:
1px
99999;
但我只想要1px的返回值。
我明白爲什麼它返回上述但似乎無法弄清楚如何返回大小而不是顏色值。我試着用以下的負回顧後發,但它不工作之一:
/(((?<!#\d{3}|#\d{6})[+-]?\d*\.?\d+(\s)*(px|em|ex|pt|in|pc|mm|cm)?)|thin|medium|thick)(\s|;|$)/i
我想用preg_match_all對於可以有多個大小的值(即保證金)的CSS屬性。
任何人有任何想法如何讓這個正則表達式只返回大小值?
感謝您的幫助!
使用[CSS解析器](https://github.com/sabberworm/PHP-CSS-Parser)。我會說CSS像HTML可能不應該用正則表達式解析。 –