正则表达式删除不需要的CSS

时间:2013-10-16 11:57:27

标签: regex

我有一个CSS,它写的引用太多了,我想在标题工作之前删除这些引用。

例如,我想改变这个:

#x #y #header, #s #t #header{}
#header #a #b, #t #header{}
#k, #l,#x #y #header{}

这是我期待的输出:

#header, #header{}
#header #a #b, #header{}
#header{}

我在RegexPal中尝试了这段代码,但没有取得多大成功:

(.*)(?=#header)

我想要删除所有要出现的元素#header我可以搜索并多次查找但是这个正则表达式正在做的是最后检查#header而不是第一个例如这个正则表达式输出是:

#header{}
#header{}
#header{}

1 个答案:

答案 0 :(得分:1)

使用非贪婪的比赛,并在后面看看:

(?<=^|,).*?(?=#header)

查看此正则表达式的live demo与示例文本中不需要的输入相匹配。

说明:

.*贪婪 - 它会尽可能多地匹配,可能会跳过#header到下一个,但.*? 不情愿(又名非-greedy)并尽可能少地匹配 - 它不会跳过#header

(?<=^|,)是一个背后隐藏,在匹配之前断言输入是输入的开头还是逗号 - 允许逗号后的新匹配。