我正试图在我的.less文件中找到嵌套4级以上的所有地方,而不会被关闭。
以下是我目前正在使用Rubular的地方: http://rubular.com/r/a6uWyH0mUv
如果您希望在SO上看到示例:
ul {
width:100%;
li {
width: 25%;
a {
color: @blue;
span {
font-weight: normal;
}
}
}
}
ul {
width:100%;
li {
width: 25%;
a {
color: @blue;
}
}
}
ul {
width:100%;
li {
width: 25%;
}
}
ul {
width:100%;
}
我想要匹配的唯一一个是第一个具有4个嵌套css属性的测试字符串。
通过各种实验,我已经能够非常接近,但我仍然最终匹配不应该被正则表达式捕获的部分字符串。
非常感谢任何帮助。
答案 0 :(得分:1)
[{][^}]*[{][^}]*[{][^}]*[{](.*)
应该可以解决问题。
答案 1 :(得分:0)
.*?(?:\{[^}]*?){4}(.*?\})
.*? makes sure to find the first one, not really necessary
(?:\{[^}]*?) finds 4 opening brackets without closing ones
(.*?\}) capturing group until the first closing bracket.
如果这不完全符合您的要求,可以轻松修改。
在评论中解决您的请求:
.*?(?:\{[^}]*?){4}(.*?)\}
只会为您提供括号内的文字(font-weight: normal;
)。我所做的就是从捕获组中移除右括号。
和
.*?(?:\{[^}]*?){3}(\n[^\n]*?\{.*?\})
将解决您的第二个请求。请注意,这种方式非常严重,我认为它不会在所有情况下都能正常工作。我推荐第一个,或者稍微修改一下。
至于Sublime Test 2中的崩溃,我不确定我是否可以提供帮助 - 这对我有用!