Spaces:
No application file
No application file
from typing import List | |
import re | |
def has_key_brace(string: str) -> bool: | |
"""检测字符串中是否含有{x}。 | |
注意,不是检测是否有{} | |
Args: | |
string (str): | |
Returns: | |
bool: | |
""" | |
flag = re.search("\{.+\}", string) | |
flag = flag is not None | |
return flag | |
def merge_near_same_char(string: str, target_char=", ") -> str: | |
"""合并连续不变的指定字符为1个。如 `1,2,,3,,,4`合并成`1,2,3` | |
Args: | |
string (str): 待处理的字符串 | |
target_char (str, optional): 指定的连续字符. Defaults to ",". | |
Returns: | |
str: 处理后的字符串 | |
""" | |
string = re.sub("({}*)+".format(target_char), target_char, string) | |
return string | |
def get_word_from_key_brace_string(string: str, start="{", end="}") -> List: | |
"""从含有`{key}`的模板字符串中 获取所有的关键词`key` | |
Args: | |
string (str): 含有`{key}`的模板字符串 | |
Returns: | |
List: 所有关键词 key 列表 | |
""" | |
words = re.findall(f"{start}[^{start}|^{end}]+{end}", string) | |
words = [word[len(start) : -len(end)] for word in words] | |
return words | |
def clean_str_for_save(string: str, disallowed_chars: List = None): | |
if disallowed_chars is None: | |
disallowed_chars = r'[\\/:*?"<>|]' | |
cleaned_filename = re.sub(disallowed_chars, "", string) | |
return cleaned_filename | |