regex表达式不捕获最后一个右括号,而在第一个右括号处停止。
运行正则表达式:
@media.*(\{([^{}]|(?R))*\})
不捕获得到第二个括号。
@media screen and (min-width:750px){h1{font-size:2.5em}
test
} //doesn't capture
}
随时在这里尝试:https : //regex101.com/r/lF0fI1/457
我试图匹配第一个@media字符串,继续直到它到达第一个括号或'{',然后运行递归表达式以捕获嵌套的括号。
你的问题之一是
@media.*
.*
天生就是贪婪的,所以它尽可能地与您匹配,您可以通过添加?
或使用使其变得懒惰[^\{]*
其次,您应该使用因为重复整个表达式,但是需要重复一个子模式numbered recursive regex
(?1)
(?R)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句