* Added parser support for EDICT2 entry format.
authorUrban Wallasch <urban.wallasch@freenet.de>
Thu, 17 Jun 2021 12:11:48 +0000 (14:11 +0200)
committerUrban Wallasch <urban.wallasch@freenet.de>
Thu, 17 Jun 2021 12:11:48 +0000 (14:11 +0200)
* Dropped check for line anchors (^, $) in search term, users should never have to use those anyway.
* Use the r(aw) prefix for all regex string literals.

jiten-pai.py

index f8e3dcd6b01dba5d77281149943307906bd114aa..e72dede064fb71370c3c22446cfe1a84631afeba 100755 (executable)
@@ -1033,30 +1033,17 @@ class jpMainWindow(QMainWindow):
         if mode == ScanMode.JAP:
             s_term = kata2hira(s_term)
             if self.japopt_exact.isChecked():
-                if s_term[0] != '^':
-                    s_term = '^' + s_term
-                if s_term[-1] != '$':
-                    s_term = s_term + '$'
+                s_term = r'(^|;)' + s_term
+                s_term = s_term + r'(;|$)'
             elif self.japopt_start.isChecked():
-                if s_term[0] != '^':
-                    s_term = '^' + s_term
-                if s_term[-1] == '$':
-                    s_term = s_term[:-1]
+                s_term = r'(^|;)' + s_term
             elif self.japopt_end.isChecked():
-                if s_term[0] == '^':
-                    s_term = s_term[1:]
-                if s_term[-1] != '$':
-                    s_term = s_term + '$'
-            elif self.japopt_any.isChecked():
-                if s_term[0] == '^':
-                    s_term = s_term[1:]
-                if s_term[-1] == '$':
-                    s_term = s_term[:-1]
+                s_term = s_term + r'(;|$)'
         else:
             if self.engopt_expr.isChecked():
-                s_term = '\W( to)? ' + s_term + '(\s+\(.*\))?;'
+                s_term = r'\W( to)? ' + s_term + r'(\s+\(.*\))?;'
             elif self.engopt_word.isChecked():
-                s_term = '\W' + s_term + '\W'
+                s_term = r'\b' + s_term + r'\b'
         return s_term
 
     def _search_relax(self, mode):