From 4cc4ab1735275abdc22b559ca7238e2cf4a4222e Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 11 Jun 1996 18:45:15 +0000 Subject: Add third arg to split(). Add capwords() -- which uses that. --- Lib/regsub.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Lib/regsub.py b/Lib/regsub.py index 507e542..6dbe8dd 100644 --- a/Lib/regsub.py +++ b/Lib/regsub.py @@ -50,8 +50,10 @@ def gsub(pat, repl, str): # Split string str in fields separated by delimiters matching pattern # pat. Only non-empty matches for the pattern are considered, so e.g. # split('abc', '') returns ['abc']. +# When the optional 3rd argument is true, the separators are also +# inserted to the list. -def split(str, pat): +def split(str, pat, retain = 0): prog = compile(pat) res = [] start = next = 0 @@ -64,11 +66,23 @@ def split(str, pat): break else: res.append(str[start:a]) + if retain: + res.append(str[a:b]) start = next = b res.append(str[start:]) return res +# Capitalize words split using a pattern + +def capwords(str, pat): + import string + words = split(str, pat, 1) + for i in range(0, len(words), 2): + words[i] = string.capitalize(words[i]) + return string.joinfields(words, "") + + # Internal subroutines: # compile(pat): compile a pattern, caching already compiled patterns # expand(repl, regs, str): expand \digit escapes in replacement string -- cgit v0.12