正则表达式,用于在子字符串时排除重复匹配

时间:2013-07-30 06:46:09

标签: regex

我有一个看起来像这样的字符串:

style="background-color: red; color: green;"

我曾经用以下正则表达式替换my(CSS)字符串的属性:

color: ([a-zA-Z0-9\.]*)

enter image description here

这里的问题是,它也会匹配背景颜色,但我希望它只匹配颜色。

(我用它来替换属性的值)

3 个答案:

答案 0 :(得分:1)

试试这个:

/[\;\"\']{1}[\s]{0,1}color:[\s]{0,1}([a-zA-Z0-9\.]*)/ims

答案 1 :(得分:1)

您正在寻找确切的单词匹配。试试这个

/^color: ([a-zA-Z0-9\.]*)$/

答案 2 :(得分:1)

(?:^|[^\-0-9A-Za-z])color:\s*([a-zA-Z0-9\.]*)
  • (?:^|[^\-0-9A-Za-z])匹配文本开头或任何字符,但减号,数字或字母(这些可能是CSS属性名称的一部分)

  • color:与您的CSS属性名称匹配。注意:请考虑使用不区分大小写的正则表达式

  • \s*匹配冒号后的可选空格

  • ([a-zA-Z0-9\.]*)匹配并捕获CSS属性值。请注意,CSS属性color具有比此正则表达式所涵盖的更宽的值空间(例如#fffrgb(0,100,255)rgba(...)hsla(...)),但这不是你的问题。