在Python中的单词后面获取字符

时间:2014-05-31 05:28:09

标签: python regex

我已经花了几个小时用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)

2 个答案:

答案 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)是一个匹配单个数字的捕获组。