continuing
This commit is contained in:
19
src/SmartRegexpFactory.py
Normal file
19
src/SmartRegexpFactory.py
Normal file
@@ -0,0 +1,19 @@
|
||||
import re
|
||||
|
||||
|
||||
# adapted from function _fnFilterCreateSearch() defined in https://github.com/DataTables/DataTablesSrc/blob/master/js/core/core.filter.js
|
||||
class SmartRegexpFactory:
|
||||
|
||||
def createSmartRegexp(self, searchTerm):
|
||||
return re.compile(
|
||||
rf'^{self.assertContainsWords(self.getWords(searchTerm))}.*$',
|
||||
flags=re.IGNORECASE)
|
||||
|
||||
def getWords(self, searchTerm):
|
||||
return [re.escape(word) for word in re.split(r'\s+', searchTerm)]
|
||||
|
||||
def assertContainsWords(self, words):
|
||||
return ''.join([self.assertContainsWord(word) for word in words])
|
||||
|
||||
def assertContainsWord(self, word):
|
||||
return f'(?=.*?{word})'
|
||||
Reference in New Issue
Block a user