regex在其他字符之间的字符前获取单词



我正试图从css文件中获取文本,它是:(溢出、空白、宽度、页边空白(之前的所有文本,并使其成为蓝色

.MenuContainerScroll {
overflow: auto;
overflow-y: hidden;
white-space: nowrap;
width: 100%;
margin-top: 1vw;
}

我正在使用以下正则表达式:

html.replace(/(([A-z'-]+):)/g, '<span class="blue">$1</span>');

什么是完美的,直到它满足这个要求:

.MenuContainerScroll::-webkit-scrollbar {
width: 6px;
height: 1vw;
}

现在。MenuContainerScroll也变蓝了,我希望它选择{}之间的每个单词:这有意义吗?我可以在之间选择文本

(/(/*(.*?)*/)/g

但我不知道如何将这两者结合起来,谢谢

您可以预先设置一个锚来断言字符串的开头,在字符类之前匹配组1([^Srn]*)中的可选空白字符,并从组2中的字符类([A-Za-z'-]+:)中捕获匹配项。

^([^Srn]*)([A-Za-z'-]+:)

Regex演示

在替换中使用

$1<span class="blue">$2</span>

如果你想在前后断言一个花括号,如果支持的话,你也可以在正查找后面使用带有无限量词的查找。

(?<={[^{}]*)([^Srn]*)([A-Za-z'-]+:)(?=[^{}]*})

Regex演示

注意,断言花括号不考虑任何嵌套或平衡括号,并且[A-z]匹配的内容多于[A-Za-z]

最新更新