[英]How to speed up regex findall in a CSS file
我正在使用正則表達式來查找 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.]+){([^{}]*)}
看到正則表達式演示在哪里[.#]?
匹配一個可選的.
或#
在單詞邊界檢查之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.