我已经花了几个小时用Python做这件事,我不知道还能做些什么。 我有一个与此类似的字符串:
title = "Marielizabeth's Diary Chapter 9"
我想在"章"之后得到这个数字。然后在它前面放一个0:" Marielizabeth的日记第09章"。我不能使用title.replace因为我不知道我会得到什么。我只知道这个数字是在"章"。
之后chapter = title.split('Chapter ', 1)
for char in chapter:
print char
但它不起作用。我怎么能这样做?
最终解决方案:
title = "Marielizabeth's Diary Chapter 9"
re.sub('Chapter (\d$)', lambda m: "0" + m.group(1), title)
答案 0 :(得分:2)
如果您的问题陈述100%准确,有一种非常简单的方法,请使用替换方法并替换" Chapter"与"第0章"
e.g。
title = "Marielizabeth's Diary Chapter 9"
title = title.replace("Chapter ", "Chapter 0")
这取决于章节和下面的数字之间的单个空格,即与您的问题陈述完全匹配。
答案 1 :(得分:1)
您可以在re.sub()
的repl
参数中传递函数:
>>> import re
>>> title = "Marielizabeth's Diary Chapter 9"
>>> re.sub('Chapter (\d)', lambda m: "0" + m.group(1), title)
"Marielizabeth's Diary 09"
此处(\d)
是一个匹配单个数字的捕获组。