正则表达式有两个可选的捕获组

时间:2015-02-26 01:18:24

标签: regex

我不知道我的正则表达式有什么问题:我尝试清除除高度/宽度之外的所有CSS样式(如果它们存在)。

style=".*(height: *\d*px|em|%)?.*(width: *\d*px|em|%)?.*"

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可能只想扫描字符串中的所有匹配项,然后将这个字符串替换为连接匹配项。有效属性的模式类似于:

/(\b(?:height|width):\s*\d+(?:px|em|%))/i

所以,例如,在Ruby中,我会做类似的事情:

str = "foo: 123;  width: 10%; height: 40px"
str.scan(/(\b(?:height|width):\s*\d+(?:px|em|%))/).flatten.join("; ")
# => "width: 40px; height: 10%"