如何加快 CSS 文件中的正则表达式 findall

我正在使用正则表达式来查找 CSS 文件中的所有选择器,有时它会加载几分钟。查看文件后,我发现 sourceMappingURL 非常大并且导致问题:

sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndvb2QuZnVsbC5taW4uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJpQkFFQSw4QkFBOEIsU0FBUyxPQUFPLGlCQUFpQixPQUFPLEtBQUssb0JBQW9CLEtBQUssUUFBUSxPQUFPLEVBQUUsU0FBUyxtQkFBbUIsSUFBSSxRQUFRLFdBQVcsT0FBTyxvQkFBb0IsNEJBQTRCLE9BTyxL...

这是完整的 CSS 文件:https ://jsfiddle.net/jj_jaq/32d7hpc0/3/

这是我的正则表达式:

selectors = re.findall(r'([.#\w][-\w,\s.]+)(\{(.*?)\})', content)

有没有办法加快我的正则表达式?


30秒到达战场
浏览 58回答 1
1回答

哔哔one

您可以告诉正则表达式引擎将匹配锚定在左侧单词边界。但是,仅添加\b将不起作用,因为您要匹配的第一个字符也可以是 a.或非#单词字符。利用[.#]?\b([-\w,\s.]+){([^{}]*)}请参阅匹配可选或单词边界检查之前的正则表达式演示。[.#]?.#
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python