【发布时间】:2017-05-14 22:53:24
【问题描述】:
我正在用 C# 构建一个 CSS 解析器,我需要对 CSS 选择器的情况进行“规范化”。我的意思是我想让标签名称小写,但保持类和 id 的原样。
例如,如果我有一个字符串,例如:
.Header Td.selected
我想更改规范化大小写并将其更改为:
.Header td.selected
我想保留类和 id 的大小写,因为在 CSS 中它们是区分大小写的。而且我需要将不区分大小写的部分更改为小写,以避免在我的解析器中存储重复的 CSS 规则。
因此,我需要一些代码来区分不区分大小写的部分并将它们更改为小写。我该怎么做?
【问题讨论】:
-
看来你的问题已经有了答案。您需要将 html 标签与其他标签区分开来,考虑到只有一定数量的标签,这应该不难。
-
HTML 标签名称是 CSS 中唯一没有以句点、哈希、括号等开头的东西。所以应该不会太难。
-
请记住,虽然 HTML 不区分大小写,但 XML 是。以这种方式处理用于 XML 文件的样式表会使它变得面目全非。
-
我需要它用于一个应用程序,它不会应用于 XML。
-
试试
Regex.Replace(s, @"\s\w+", m => m.Value.ToLower())
标签: c# css regex css-selectors