MuseV-test / mmcm /utils /str_util.py
kevinwang676's picture
Upload folder using huggingface_hub
6755a2d verified
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