我正在尝试(并且失败)指定一个正则表达式,我可以使用PHP的preg_match_all()
进行以下操作:
.foo { bar }
.baz, .bot { bip, bop }
我需要计算所有不在{}之间的{
和,
。鉴于上面的示例,我应该有三个匹配。我的困难(无知)是我不明白如何指定“花括号之间的逗号不匹配”部分。我当前的正则表达式匹配所有逗号并打开花括号:
({)*(,)*
答案 0 :(得分:2)
试试这个:
\{.+?\}|,
含义:
\{ # If you can match a brace
.+? # then also grab the minimum amount of other charactors
\} # until you reach the closing brace
|, # or if there was no brace then just match a comma
答案 1 :(得分:1)
如果你想要一个接近但不准确的计数,这是一个快速而又脏的方法
$selector_count = substr_count($css, ',') + substr_count($css, '{') - substr_count($css, '@media');
它会计算css中的所有,
,因此使用rgba(0, 0, 0, 0.5)
的{{1}}等规则也会计算在内。如果您了解这些限制,这将非常有用。已接受的解决方案不适用于,
。