gpt4 book ai didi

javascript - 正则表达式匹配来自包含多个类的单个字符串的 css 类名

转载 作者:行者123 更新时间:2023-11-30 13:14:49 24 4
gpt4 key购买 nike

我有一个包含多个 css 类的长字符串。使用正则表达式,我想匹配每个类名,因为我需要像这样替换这些类名:

<span>CLASSNAME</span>

我已经尝试了几个小时来想出一个解决方案,我认为我已经接近了,但是对于某些类名,我无法从匹配中排除右大括号。

这是我一直在进行测试的示例字符串:

#main .items-Outer p{ font-family:Verdana; color: #000000; font-size: 50px; font-weight: bold; }#footer .footer-inner p.intro{ font-family:Arial; color: #444444; font-size: 30; font-weight: normal; }.genericTxt{ font-family:Courier; color: #444444; font-size: 30; font-weight: normal; }

这是我到目前为止想出的正则表达式:

((^(?:.+?)(?:[^{]*))|((?:\})(?:.+?)(?:[^{]*)))

请查看我附上的屏幕截图,因为它会更清楚地显示我得到的匹配项。我的问题是我显然想从任何匹配项中排除大括号。

regex matches

为了澄清,我所追求的匹配示例是:

  • main .items-Outer p

  • 页脚.footer-inner p.intro

  • .genericTxt

最佳答案

当且仅当不会有任何嵌套的花括号时,以下应该有效:

/\.(-?[_a-zA-Z]+[_a-zA-Z0-9-]*)(?![^\{]*\})/

这是 a demo !

请注意,我引用的是 this question对于有效的 CSS 类名正则表达式。

编辑

我刚刚阅读了您的评论,说明您希望匹配整个选择器,而不仅仅是类名。在那种情况下,试试这个,尽管我对它的稳健性没有那么自信:

/[^}]*(?=\{|$)/

这是 a demo of that one .

关于javascript - 正则表达式匹配来自包含多个类的单个字符串的 css 类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12391760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com