Spaces:
Sleeping
Sleeping
from traceback import format_exc | |
from regex import search | |
from Powers import LOGGER | |
async def regex_searcher(regex_string: str, string: str) -> str: | |
"""Search for Regex in string.""" | |
try: | |
re_search = search(regex_string, string, timeout=6) | |
except TimeoutError: | |
return False | |
except Exception: | |
LOGGER.error(format_exc()) | |
return False | |
return re_search | |
async def infinite_loop_check(regex_string: str) -> bool: | |
"""Clear Regex in string.""" | |
loop_matches = ( | |
r"\((.{1,}[\+\*]){1,}\)[\+\*]." | |
r"[\(\[].{1,}\{\d(,)?\}[\)\]]\{\d(,)?\}" | |
r"\(.{1,}\)\{.{1,}(,)?\}\(.*\)(\+|\* |\{.*\})" | |
) | |
for match in loop_matches: | |
match_1 = search(match, regex_string) | |
return bool(match_1) | |