我有一个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{}
答案 0 :(得分:1)
使用非贪婪的比赛,并在后面看看:
(?<=^|,).*?(?=#header)
查看此正则表达式的live demo
与示例文本中不需要的输入相匹配。
说明:
.*
贪婪 - 它会尽可能多地匹配,可能会跳过#header
到下一个,但.*?
不情愿(又名非-greedy)并尽可能少地匹配 - 它不会跳过#header
。
(?<=^|,)
是一个背后隐藏,在匹配之前断言输入是输入的开头还是逗号 - 允许逗号后的新匹配。