我试图在Sublime Text上抓住这个。
有这个:
-webkit-calc(50%+4px/2+32px-32px*23%)
想要捕获calc中的所有+和 - 符号,这样我就可以在它们之间添加空格......
喜欢这个:
-webkit-calc(50% + 4px/2 + 32px - 32px*23%)
我已经有了这个,但缓存了calc(***)中的所有内容,但只想要所有的+和 -
(?<=calc\()(.+)(?=\))
希望你能帮助我这个人,
提前致谢
答案 0 :(得分:4)
您的(?<=calc\()(.+)(?=\))
不起作用,因为它只会抓取该行calc(
和最后)
之间的内容。您需要仅在这些分隔符内匹配+
或-
,这就是\G
运算符所在的位置。
如果没有嵌套括号,则可以使用
(?:calc\(|(?!^)\G)[^)+-]*\K[-+]
替换为 $0
。为了更安全,请在calc
之前添加单词边界:\bcalc
。
请参阅http://nimbupani.com/using-background-clip-for-text-with-css-fallback.html
模式匹配:
(?:calc\(|(?!^)\G)
- 匹配calc(
(与calc\(
或\bcalc\(
匹配)或上一次成功匹配的结束(使用(?!^)\G
)[^)+-]*
- 除)
,+
和-
\K
- 省略到目前为止匹配的字符[-+]
- 匹配-
或+
如果您只想添加缺少的空格,您可以匹配运算符周围的所有空格,并用单个空格替换它们:
(?:calc\(|(?!^)\G)[^)+-]*?\K\s*([-+])\s*
^^^ ^^^^
并替换为 $1
。这会将-webkit-calc(50%+ 4px/2 +32px - 32px*23%)
变为-webkit-calc(50% + 4px/2 + 32px - 32px*23%)
。