Python | División excepcional en string

A veces, mientras trabajamos con Strings, es posible que necesitemos realizar la operación de división. La división directa es fácil. Pero a veces, podemos tener un problema en el que necesitamos realizar una división en cierto carácter pero tenemos excepciones. Esto analiza la división en coma, con la excepción de que la coma no debe estar entre corchetes. Analicemos ciertas formas en que se puede realizar esta tarea.

Método #1: Usando loop + strip()
Esta es la forma de fuerza bruta en la que realizamos esta tarea. En esto, construimos cada elemento de la lista como palabras en String que tiene en cuenta los paréntesis y la coma para realizar la división.

# Python3 code to demonstrate working of 
# Exceptional Split in String
# Using loop + split()
  
# initializing string
test_str = "gfg, is, (best, for), geeks"
  
# printing original string
print("The original string is : " + test_str)
  
# Exceptional Split in String
# Using loop + split()
temp = ''
res = []
check = 0
for ele in test_str:
    if ele == '(':
        check += 1
    elif ele == ')':
        check -= 1
    if ele == ', ' and check == 0:
        if temp.strip():
            res.append(temp)
        temp = ''
    else:
        temp += ele
if temp.strip():
    res.append(temp)
  
# printing result 
print("The string after exceptional split : " + str(res)) 
Producción :

The original string is : gfg, is, (best, for), geeks
The string after exceptional split : ['gfg', ' is', ' (best, for)', ' geeks']

Método n.º 2: usarregex()
Esto es otra forma más en la que se puede realizar esta tarea. En esto, usamos una expresión regular en lugar de la lógica de fuerza bruta manual para la coma entre paréntesis y omitimos que se divida.

# Python3 code to demonstrate working of 
# Exceptional Split in String
# Using regex()
import re
  
# initializing string
test_str = "gfg, is, (best, for), geeks"
  
# printing original string
print("The original string is : " + test_str)
  
# Exceptional Split in String
# Using regex()
res = re.split(r', (?!\S\)|\()', test_str)
  
# printing result 
print("The string after exceptional split : " + str(res)) 
Producción :

The original string is : gfg, is, (best, for), geeks
The string after exceptional split : ['gfg', ' is', ' (best, for)', ' geeks']

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 *