C# Regex 替换样式 HEIGHT 标签

标签 c# html regex

我需要用 MIN-HEIGHT 替换 HEIGHT 标签,但我很难从替换中排除开头引号。

这是我的正则表达式:

[^-](height:)

这是我的替换:

html = regex.Replace(html, "min-height:");

据我所知,这应该匹配“高度:”而不是“最小高度:”,但是当我进行替换时,它也会替换紧接在高度之前的字符:。

所以 style="HEIGHT: 变成 style=MIN-HEIGHT:

我如何在替换中保持开头的引号同时满足高度:比如说,样式标签的第三个属性而不是引号(例如 style="WIDTH: 200px; HEIGHT: 400px"?

示例输入为:

style="高度:500px;" 样式 =“宽度:200 像素;高度:500 像素” style="宽度:200px;高度:500px"

预期输出:

style="最小高度:500px;" style="宽度:200px;最小高度:500px" style="WIDTH: 200px;MIN-HEIGHT: 500px"

当前输出:

style=最小高度 500px;" style="WIDTH: 200px;MIN-HEIGHT 500px" style="WIDTH: 200pxMIN-HEIGHT 500px"

Regex101 link here

最佳答案

(?<!-)(height:)

试试这个。使用 0 宽度断言而不是捕获。参见演示。lookbehind 将确保 - 后面没有 height捕获。如果 heightcase-sensitive

,请使用 i 修饰符

https://regex101.com/r/vD5iH9/78

关于C# Regex 替换样式 HEIGHT 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28363619/

相关文章:

c# - 为什么我的代码会抛出无效的转换异常? (C#)?

c# - 无法动态地将 HTML 元素附加到 div

c# - 使用对象初始值设定项设置私有(private) setter

html - 覆盖当前浏览器页面的弹出消息

html - 如何格式化下拉菜单的 CSS,以便如果 'parent' 下拉菜单是当前的,则子项将不会采用父项的格式

java - 我可以将这个 "range string"与正则表达式匹配吗?

regex - sed 计算

C# 调用一个事件

javascript - 如何根据条件动态设置 Aurelia 中复选框的选中属性

java - 按空格、连字符和 "ab cd"分割字符串