Programa de Python para incrementar el número de sufijo en la string

Dada una String, t incrementa el número que está al final de la string.

Entrada : test_str = ‘geeks006’ 
Salida : geeks7 
Explicación : Sufijo 006 incrementado a 7.

Entrada : test_str = ‘geeks007’ 
Salida : geeks8 
Explicación : Sufijo 007 incrementado a 8. 
 

Método #1: Usando findall() + join() + replace()

En esta estrategia, realizamos la tarea de encontrar el número usando findall(), luego realizamos la tarea de separar la string numérica y la string de prefijo, luego se realiza un incremento de una string numérica. Por último, la string se une para obtener un prefijo seguido de un número incrementado.

Python3

# Python3 code to demonstrate working of 
# Increment Suffix Number
# Using findall() + join() + replace()
import re
  
# initializing string
test_str = 'geeks006'
  
# printing original string
print("The original string is : " + str(test_str))
  
# getting suffix number 
reg = re.compile(r'[ 0 - 9]')
mtch = reg.findall(test_str)
  
# getting number 
num = ''.join(mtch[-3 : ])
pre_str = test_str.replace(num, '')
  
# Increment number 
add_val = int(num) + 1
  
# joining prefix str and added value 
res = pre_str + str(add_val)
      
# printing result 
print("Incremented numeric String : " + str(res)) 

Producción:

The original string is : geeks006
Incremented numeric String : geeks61

Método #2: Usando sub() + group() + zfill()

En esto, realizamos la tarea de agrupar números usando group() e incrementando, zfill() se usa para la tarea de completar los valores principales requeridos en numérico. El sub() se usa para encontrar la parte numérica de las strings.

Python3

# Python3 code to demonstrate working of 
# Increment Suffix Number
# Using sub() + group() + zfill()
import re
  
# initializing string
test_str = 'geeks006'
  
# printing original string
print("The original string is : " + str(test_str))
  
# fstring used to form string 
# zfill fills values post increment
res = re.sub(r'[0-9]+$',
             lambda x: f"{str(int(x.group())+1).zfill(len(x.group()))}", 
             test_str)
      
# printing result 
print("Incremented numeric String : " + str(res)) 

Producción:

The original string is : geeks006
Incremented numeric String : geeks007

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *