eric6/WebBrowser/AdBlock/AdBlockRule.py

changeset 7775
4a1db75550bd
parent 7773
fe42bd17d4fe
child 7923
91e843545d9a
--- a/eric6/WebBrowser/AdBlock/AdBlockRule.py	Sat Oct 10 16:03:53 2020 +0200
+++ b/eric6/WebBrowser/AdBlock/AdBlockRule.py	Sun Oct 11 17:54:52 2020 +0200
@@ -7,12 +7,10 @@
 Module implementing the AdBlock rule class.
 """
 
-
 import re
-
 from enum import IntEnum
 
-from PyQt5.QtCore import Qt, QRegExp
+from PyQt5.QtCore import Qt
 from PyQt5.QtWebEngineCore import QWebEngineUrlRequestInfo
 
 
@@ -276,8 +274,10 @@
         if parsedLine.startswith("/") and parsedLine.endswith("/"):
             parsedLine = parsedLine[1:-1]
             self.__type = AdBlockRuleType.RegExpMatchRule
-            self.__regExp = QRegExp(parsedLine, self.__caseSensitivity,
-                                    QRegExp.RegExp)
+            if self.__caseSensitivity:
+                self.__regExp = re.compile(parsedLine)
+            else:
+                self.__regExp = re.compile(parsedLine, re.IGNORECASE)
             self.__stringMatchers = self.__parseRegExpFilter(parsedLine)
             return
         
@@ -302,12 +302,14 @@
             return
         
         # If there is still a wildcard (*) or separator (^) or (|),
-        # the rule must be modified to comply with QRegExp.
+        # the rule must be modified to comply with re.
         if "*" in parsedLine or "^" in parsedLine or "|" in parsedLine:
             self.__type = AdBlockRuleType.RegExpMatchRule
             pattern = self.__convertPatternToRegExp(parsedLine)
-            self.__regExp = QRegExp(pattern, self.__caseSensitivity,
-                                    QRegExp.RegExp)
+            if self.__caseSensitivity:
+                self.__regExp = re.compile(pattern)
+            else:
+                self.__regExp = re.compile(pattern, re.IGNORECASE)
             self.__stringMatchers = self.__parseRegExpFilter(parsedLine)
             return
         
@@ -505,7 +507,7 @@
             if not self.__isMatchingRegExpStrings(encodedUrl):
                 matched = False
             else:
-                matched = self.__regExp.indexIn(encodedUrl) != -1
+                matched = self.__regExp.search(encodedUrl) is not None
         elif self.__type == AdBlockRuleType.MatchAllUrlsRule:
             matched = True
         
@@ -1153,10 +1155,11 @@
         
         @return tuple containing the regular expression and the list of
             string matchers
-        @rtype tuple of (QRegExp, list of str)
+        @rtype tuple of (re.Pattern, list of str)
         """
         if self.__regExp is not None:
-            return (QRegExp(self.__regExp), self.__stringMatchers[:])
+            return (re.compile(self.__regExp.pattern),
+                    self.__stringMatchers[:])
         else:
             return (None, [])
     

eric ide

mercurial