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