1
ShindouHIkaru 2017-06-30 13:27:57 +08:00
正则可以实现,主要注意的是特殊符号(比如\n 空格 ,)以及注释的分割,最好是自己动手试试,发现不行了,贴出代码让大家找一下问题,这样比较好,而不是贴个需求上来就问
|
2
revotu OP @ShindouHIkaru
classValues = re.findall(r'\.([\w_-]+)',content) idValues = re.findall(r'#([\w_-]+)',content) 但是会多出好多并不属于 ID 和 class 的值, 比如下面情况: background-color: #fff; -webkit-box-shadow: 0 0 2px 0 rgba(31, 31, 31, 0.07); |
3
porrat 2017-06-30 13:55:18 +08:00
|
4
ShindouHIkaru 2017-06-30 14:07:09 +08:00
@revotu 提供你一个思路,在不考虑派生选择器和注释的情况下 id 和 class 后面是要跟‘{'符号的,你这样的条件显然不够
|
5
revotu OP |
6
revotu OP idValues = re.findall(r'#([\w_-]+)',content)
我想知道 我这种匹配 id 的时候 怎样能排除那种后面紧跟着着分号的: background-color: #fff; 排除了这种 我的匹配 id 应该就准确了吧 |
7
ShindouHIkaru 2017-06-30 18:42:03 +08:00
@revotu 我不确定你的文件的复杂性,但是如果是通常的写法,可以利用行头直接判断
r'^\.([\w_-]+)' r'^#([\w_-]+)' 都加上了'^'符号,你可以看看有没有全部选中。可以试试哈 ps: 可以在 sublime 直接能看到正则结果 |
8
ShindouHIkaru 2017-06-30 18:44:27 +08:00
@revotu 因为不同的文件,正则的复杂程度是不一样的,只要针对目标写出最简单的写法,我觉得就足够了,如果你加上^还是不行的话,你可以贴出你的 css 文件一起看看怎么解决
|
9
P233 2017-07-01 10:52:15 +08:00
写个 PostCSS 插件做这个事情会轻松地多
|