string_util.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. from typing import List
  2. from core.constant import CommonConstant
  3. class StringUtil:
  4. """
  5. 字符串工具类
  6. """
  7. @classmethod
  8. def is_blank(cls, string: str) -> bool:
  9. """
  10. 校验字符串是否为''或全空格
  11. :param string: 需要校验的字符串
  12. :return: 校验结果
  13. """
  14. if string is None:
  15. return False
  16. str_len = len(string)
  17. if str_len == 0:
  18. return True
  19. else:
  20. for i in range(str_len):
  21. if string[i] != ' ':
  22. return False
  23. return True
  24. @classmethod
  25. def is_empty(cls, string) -> bool:
  26. """
  27. 校验字符串是否为''或None
  28. :param string: 需要校验的字符串
  29. :return: 校验结果
  30. """
  31. return string is None or len(string) == 0
  32. @classmethod
  33. def is_http(cls, link: str):
  34. """
  35. 判断是否为http(s)://开头
  36. :param link: 链接
  37. :return: 是否为http(s)://开头
  38. """
  39. return link.startswith(CommonConstant.HTTP) or link.startswith(CommonConstant.HTTPS)
  40. @classmethod
  41. def contains_ignore_case(cls, search_str: str, compare_str: str):
  42. """
  43. 查找指定字符串是否包含指定字符串同时串忽略大小写
  44. :param search_str: 查找的字符串
  45. :param compare_str: 比对的字符串
  46. :return: 查找结果
  47. """
  48. if compare_str and search_str:
  49. return compare_str.lower() in search_str.lower()
  50. return False
  51. @classmethod
  52. def contains_any_ignore_case(cls, search_str: str, compare_str_list: List[str]):
  53. """
  54. 查找指定字符串是否包含指定字符串列表中的任意一个字符串同时串忽略大小写
  55. :param search_str: 查找的字符串
  56. :param compare_str_list: 比对的字符串列表
  57. :return: 查找结果
  58. """
  59. if search_str and compare_str_list:
  60. for compare_str in compare_str_list:
  61. return cls.contains_ignore_case(search_str, compare_str)
  62. return False
  63. @classmethod
  64. def en_startswith(cls, search_str: str, compare_str: str):
  65. """
  66. 查找指定字符串是否以指定字符串开头
  67. :param search_str: 查找的字符串
  68. :param compare_str: 比对的字符串
  69. :return: 查找结果
  70. """
  71. if compare_str and search_str and not search_str.startswith(compare_str):
  72. return f"{compare_str}{search_str}"
  73. return search_str
  74. @classmethod
  75. def startswith_case(cls, search_str: str, compare_str: str):
  76. """
  77. 查找指定字符串是否以指定字符串开头
  78. :param search_str: 查找的字符串
  79. :param compare_str: 比对的字符串
  80. :return: 查找结果
  81. """
  82. if compare_str and search_str:
  83. return search_str.startswith(compare_str)
  84. return False
  85. @classmethod
  86. def startswith_any_case(cls, search_str: str, compare_str_list: List[str]):
  87. """
  88. 查找指定字符串是否以指定字符串列表中的任意一个字符串开头
  89. :param search_str: 查找的字符串
  90. :param compare_str_list: 比对的字符串列表
  91. :return: 查找结果
  92. """
  93. if search_str and compare_str_list:
  94. for compare_str in compare_str_list:
  95. return cls.startswith_case(search_str, compare_str)
  96. return False