Source code for python_humble_utils.strings

import re


[docs]def camel_or_pascal_case_to_snake_case(s: str) -> str: """Convert `camelCased` or `PascalCased` string to `snake_case`. Based on https://stackoverflow.com/a/1176023/1557013. :param s: string in `camelCase` or `PascalCase`. :return: string in `snake_case`. """ snake_case = re.sub("([a-z0-9])([A-Z])", r"\1_\2", re.sub("(.)([A-Z][a-z]+)", r"\1_\2", s)) snake_case = snake_case.lower() return snake_case
[docs]def camel_or_pascal_case_to_space_delimited(s: str) -> str: """Convert `camelCased` or `PascalCased` string to space-delimited. Based on https://stackoverflow.com/a/9283563/1557013. :param s: string in `camelCase` or `PascalCase`. :return: space-delimited string. """ space_delimited = re.sub(r"((?<=[a-z])[A-Z]|(?<!\A)[A-Z](?=[a-z]))", r" \1", s) return space_delimited