我正在研究python函数。我有一个给定的字符串,我需要找到该字符串上是否有数字,然后将1添加到该数字。 (任何数字从1到100)。
我找到了“查找”或“计数”功能,但他们所做的(据我所知)是找到一个特定的字母或数字。在我的功能上,我不知道我在寻找哪个号码,所以我不知道如何使用这些功能。
示例1:
# WHAT I HAVE
string = "STRING 2"
# WHAT I WANT AS A RESULT
STRING 3
示例2:
# WHAT I HAVE
string = "STRING 9 STRING"
# WHAT I WANT AS A RESULT
STRING 10 STRING
有谁知道怎么做? 非常感谢!
答案 0 :(得分:2)
在我看来,最好的方法是使用re.sub
进行替换。
特别要注意,repl
参数可以是可调用的,因此编写一个向整数添加一个的函数会非常容易。
答案 1 :(得分:2)
import re
def increment_repl(match):
return str(int(match.group(0)) + 1)
def increment_ints(s):
return re.sub(r'-?\d+', increment_repl, s)
>>> increment_ints("STRING 2")
'STRING 3'
>>> increment_ints("STRING 9 STRING")
'STRING 10 STRING'
>>> increment_ints("-1 0 1 2")
'0 1 2 3'
答案 2 :(得分:2)
如果您更喜欢无正则表达式解决方案:
string = "STRING 9 STRING"
def increment(val):
if val.isdigit():
return str(int(val) + 1)
return val
newstring = [increment(i) for i in string.split()]
print " ".join(newstring)