【问题标题】:Regular expression to find #ffcc00 and replace it with #fc0正则表达式查找#ffcc00 并将其替换为#fc0
【发布时间】:2012-05-11 14:02:32
【问题描述】:

我正在寻找一个可以在 CSS 文件中查找和替换某些模式的正则表达式 例如在以下字符串中:

.boxOneHeading, .boxTwoHeading, .boxThreeHeading
{
    font-size: 18px;
    font-family: MuseoSans500;
    padding: 10px 15px;
    width: 273px;
    background-color: #fbfbfb;
    background-color: #ffffff;
    background-color: #ffcc00;
}

我正在使用以下正则表达式:#?[\s]*(.{1})\1{1}(.{1})\2{1}(.{1})\3{1 } 这正确地找到了:

#ffffff and
#ffcc00

但我只想找到#ffcc00 值并将它们替换为#fc0。

为此,我要在正则表达式中添加什么?

问候, 雅克

【问题讨论】:

  • Ctrl+H,#ffcc00,Tab,#fc0,回车!

标签: c# regex


【解决方案1】:

这是一个例子:

var color = "#ffcc00";
var replaced = Regex.Replace(color, @"#(\w)\1(\w)\2(\w)\3", "#$1$2$3");
Console.WriteLine(replaced);

但我只想找到 #ffcc00 值并将其替换为 #fc0

我对此有点失望,现在这不是基本上是查找/替换吗?

var replaced = css.Replace("#ffcc00", "#fc0");

【讨论】:

  • 这里一样,它可以工作,但它仍然像我的示例一样找到#ffffff。
  • @Jacques 你是说你想为所有事情工作除了 #ffffff?
  • 实际上我刚刚意识到您的这段代码将同时适用于#ffffff 和#ffcc00。感谢您的意见。
【解决方案2】:
regex: ([0-9a-f])\1([0-9a-f])\2([0-9a-f])\3
replace: $1$2$3

RegExr link

【讨论】:

  • 这很好,但它不会阻止正则表达式找到#ffffff?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多