mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Add third arg to split(). Add capwords() -- which uses that.
This commit is contained in:
parent
8775d8b9dc
commit
4cc4ab1735
1 changed files with 15 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue