X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=string_utils.py;h=097dc1b092dc51bb031f104e82e09047bef1b8ad;hb=287360114f0a9d61d5dc3c3f168344df856ffbd5;hp=aca4a5e3bfd9f49efa9a329b06addd9af5ffaa0a;hpb=b29be4f1750fd20bd2eada88e751dfae85817882;p=python_utils.git diff --git a/string_utils.py b/string_utils.py index aca4a5e..097dc1b 100644 --- a/string_utils.py +++ b/string_utils.py @@ -1141,6 +1141,24 @@ def valid_datetime(in_str: str) -> bool: return False +def squeeze(in_str: str, character_to_squeeze: str = ' ') -> str: + """ + Squeeze runs of more than one character_to_squeeze into one. + + >>> squeeze(' this is a test ') + ' this is a test ' + + >>> squeeze('one|!||!|two|!||!|three', character_to_squeeze='|!|') + 'one|!|two|!|three' + + """ + return re.sub( + r'(' + re.escape(character_to_squeeze) + r')+', + character_to_squeeze, + in_str + ) + + def dedent(in_str: str) -> str: """ Removes tab indentation from multi line strings (inspired by analogous Scala function).