python - 检查字符串是否包含python中的数字/数字/数字

标签 python string digit

我有一个字符串,我需要检查它是否在字符串的末尾包含一个数字/数字,并且需要将该数字/数字递增到字符串末尾 +1

我会得到下面的字符串

string2  = suppose_name_1
string3  = suppose_name_22
string4  = supp22ose45_na56me_45

我肯定会得到上述格式的字符串,如 suppose_somthing + Underscore + digits

所以从上面的字符串

  1. 我需要检查一个字符串是否包含下划线后字符串末尾的数字/数字
  2. 如果它包含则需要用 +1 增加它,如下所示

    string2 = suppose_name_2

    string3 = suppose_name_23

    string4 = supp22ose45_na56me_46

我们如何通过使用正则表达式或其他东西在 python 中执行此操作,但这应该非常快。

我做了类似 here 的事情, 但想用 re 实现会非常快,所以接近 SO

编辑: 抱歉上面没有提到

有时它只包含 something_name 而没有整数,因此我需要先检查它是否包含数字

最佳答案

如何使用正则表达式:

import re

def process_string(s):
    try:
        part1, part2 = re.search('^(.*_)(\d+)$', s).groups()
        part2 = str(int(part2) + 1)
        return part1 + part2 
    except AttributeError:
        return s

print process_string("suppose_name_1")
print process_string("suppose_name_22")
print process_string("supp22ose45_na56me_45")

print process_string("suppose_name")

打印:

suppose_name_2
suppose_name_23
supp22ose45_na56me_46
suppose_name

仅供引用,使用正则表达式没有任何错误或可怕之处。

关于python - 检查字符串是否包含python中的数字/数字/数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18097044/

相关文章:

c - 为什么要在函数 strtod() 中使用 (char **endptr) 而不是 (char ch) 或 (char *chptr)

VBA。如何找到字符串中第一个数字的位置

java - 我怎样才能将一个整数分解成单个数字?

java - 如何找到数组中出现次数最多的数字并打印出来

python - 前几行值的总和

python - 使用父实现 : leads to problems 从子类覆盖 __mul__

python - 使用 PyQt PlotWidget 进行实时绘图 - 错误消息 PlotWidget 对象不可调用

python - Pandas 列列表中每行的第一个非空值

java - 将 textView 转换为字符串

c++ - 静态初始化顺序和字符串连接