我正在尝试编写一个正则表达式来查找CSS文件中的所有ID选择器。基本上,这意味着任何以#开头的单词,好吧
#\w+
除了...颜色说明符也可以以#开头。因此,我真正想要的是所有以#开头且不在{和}之间的单词。我不知道该怎么说。
我正在Notepad ++中执行此操作,因此我需要那种正则表达式。
顺便说一句,我真正的目标是从文件中删除不是ID选择器的所有内容,因此最后我得到的只是选择器列表。我的第一次尝试是
Find: [^#]*(#\w+)
Replace: \1\r\n
...,然后点击全部替换。
但是后来我遇到了颜色问题。
更新
有人问一个例子。好:
输入:
.foo {max-width: 500px;}
#bar {text-align: left;}
.splunge, #plugh {color: #ff0088;}
所需的输出:
#bar
#plugh
请注意,它包括两个在括号外的“磅弦”,但不包括在括号内的两个“磅弦”。
答案 0 :(得分:3)
那呢?您可以使用前瞻表达式:
#\w+(?=[^}]*?{)
它确保{
位于匹配项之后(指示匹配项是选择器的一部分),但不能位于}
字符之后(不包括与CSS中的颜色声明匹配的任何匹配项)。 / p>
#
:匹配项必须以#
\w+
:匹配一个或多个单词字符(可能需要调整。\w
等同于[A-Za-z0-9_]
)(?=...)
:积极向前看[^}]*?
:任何不匹配}
的字符{
:{
字符