python - 如何加速 CSS 文件中的正则表达式 findall

标签 python css regex

我使用正则表达式来查找 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)

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

最佳答案

您可以告诉正则表达式引擎将匹配项锚定在左侧单词边界。但是,仅添加 \b 是行不通的,因为您要匹配的第一个字符也可以是非 .#单词字符。

使用

[.#]?\b([-\w,\s.]+){([^{}]*)}

请参阅regex demo其中 [.#]? 与单词边界检查之前的可选 .# 匹配。

关于python - 如何加速 CSS 文件中的正则表达式 findall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60072703/

相关文章:

python - 在python中解析wget日志文件

python - 在不运行 Bottle 服务器的情况下测试 Bottle 应用程序

javascript - jQuery:从 HTML 页面获取所有链接,除非该链接属于特定类或 ID

c# - 在无序日志文件中搜索

regex - 获取一个在正则表达式匹配之前的单词?

python - 如何在 python pandas 中使用数据框的引用传递

python - Numpy 矩阵索引等价

html - 为什么这部分 html 不可见?

c# - Aspx.net 和 C# masterpage.cs 错误

php - Perl 兼容正则表达式信息