def search_for_chars(query, and_tokens=False): ans = set() for i, token in enumerate(query.split()): token = token.lower() m = re.match(r'(?:[u]\+)([a-f0-9]+)', token) if m is not None: chars = {int(m.group(1), 16)} else: chars = points_for_word(token) if chars is not None: if and_tokens: ans = chars if i == 0 else (ans & chars) else: ans |= chars return sorted(ans)
def search_for_chars(query, and_tokens=False): ans = set() for i, token in enumerate(query.split()): token = token.lower() m = re.match(r'(?:[u]\+)([a-f0-9]+)', token) if m is not None: chars = {int(m.group(1), 16)} else: chars = points_for_word(token) if chars is not None: if and_tokens: ans = chars if i == 0 else (ans & chars) else: ans |= chars return sorted(ans)