我目前的theme.css个档案:

.actionBlock[selected] {
        color: var(--gray11);
        background-color: var(--gray11);
    }

我要把color: var(--gray11);换成color: #FFF; /* EDITED : var(--gray11) */

在PowerShell中,我try 了:

$file = "theme.css"
$content = Get-Content $file -Raw
$content = $content -replace '(\.actionBlock\[selected\]\s*{[^{}]+color:\s*)([^;]+)(;)', ('$1#FFF; /* EDITED : $2 */')
Set-Content -Path $file -Value $content

这导致我的CSS改变如下:

.actionBlock[selected] {
        color: var(--gray11);
        background-color: #FFF; /* EDITED : var(--gray11) */
    }

这不是我所期望的结果:我只想改变color值,而不是background-color值.

推荐答案

你的正则表达式实际上几乎没有问题,你只需要通过增加?使[^{}]+匹配lazily.见https://regex[^{}]+.com/r/K6HTYG/1.

$css = @'
.actionBlock[selected] {
  color: var(--gray11);
  background-color: var(--gray11);
}
'@

$css -replace '(\.actionBlock\[selected\]\s*{[^{}]+?color:\s*)([^;]+)(;)', '$1#FFF; /* EDITED : $2 */'

然而,当colorafter background-color时,这将相当容易失败,所以也许一个更好的方法是寻找color之前只有空白的线.见https://regexcolor.com/r/99QdN3/1.

$css = @'
.actionBlock[selected] {
  background-color: var(--gray11);
  color: var(--gray11);
}
'@

$css -replace '(?m)(?<=\.actionBlock\[selected\]\s*{[^{}]+?^\s*color:\s*)([^;]+);', ' #FFF; /* EDITED :$1 */'

Css相关问答推荐

如何允许在bslb中 Select 输入重叠卡片?

如何使用css::Part()定位Web组件shadowDOM中的第N个元素

为什么CSS flex似乎应用了两次内部元素的填充?

如何在横向和纵向布局上使用 CSS 网格中的纵横比来保持纵横比

是否可以在元素之间对齐渐变?

:is() 伪类是否支持相邻sibling 表达式中第二个元素的组合器?

悬停时如何更改 navbarPage 链接的文本 colored颜色 (在shiny 的应用程序中)?

如何为以下布局安排网格?

在 SVG 元素上方添加标签而不移动 SVG 元素

我怎样才能让这个边框出现在按钮元素的上方?

如何在 CSS Grid 布局中指定行高?

我应该避免使用text-align: justify;吗?

如何通过单击
  • 激活 HTML 链接?
  • 如何倾斜元素但保持文本正常(未倾斜)

    我应该使用 CSS :disabled 伪类还是 [disabled] 属性 Select 器,还是见仁见智?

    li 中的第二行在 CSS-reset 后的项目符号下开始

    如何在浏览器的右下角放置一个div?

    虚拟键盘激活时的屏幕样式

    Select 器.class.class和.class.class有什么区别?

    Rails 中正确的 SCSS assets资源 struct