PHP正则表达式匹配多行字符串中的多个出现次数

时间:2015-05-13 08:28:58

标签: php css regex

我有多行CSS样式:

.style-1 {
    border-color: #2980B9;
}

.style-2 {
    background-color: #2980B9;
    #FFF;
}

.style-3 input[type=submit] {
    background-color: #2980B9;
    color: #FFF;
}

这是我的正则表达式模式:\..*\{\s?\s?+.*\s?\}\s?\s?+

https://regex101.com/r/tP7qE7/1

我想匹配选择器中的每个规则直到结束括号,因此我可以为每个规则添加新选择器并分别回显每个规则。现在我的正则表达式模式我只能获得第一条规则。我尝试了preg_match()preg_match_all()但没有成功。如何使用正则表达式匹配每个规则?

提前谢谢!

3 个答案:

答案 0 :(得分:2)

您可以将以下正则表达式(\..*?\{.*?\})与gs修饰符一起使用:

/\..*?\{.*?\}/gs

请参阅DEMO

答案 1 :(得分:0)

\..*?\{\s?\s?+[\s\S]*?\s?\}\s?\s?+

你可以使用它。参见演示。

https://regex101.com/r/tP7qE7/3

答案 2 :(得分:0)

您可以尝试使用此模式来匹配选择器

(?s)^\..*?\{.*?\}$