A veces, mientras trabajamos con strings de Python, podemos tener un problema en el que necesitamos extraer las substrings entre ciertos caracteres y pueden ser corchetes. Esto puede tener aplicación en los casos en que tenemos tuplas incrustadas en una string. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Usar regex
Una forma de resolver este problema es usando regex. En esto, empleamos expresiones regulares adecuadas y realizamos la tarea de extracción de los elementos requeridos.
Python3
# Python3 code to demonstrate working of # Extract substrings between brackets # Using regex import re # initializing string test_str = "geeks(for)geeks is (best)" # printing original string print("The original string is : " + test_str) # Extract substrings between brackets # Using regex res = re.findall(r'\(.*?\)', test_str) # printing result print("The element between brackets : " + str(res))
The original string is : geeks(for)geeks is (best) The element between brackets : ['(for)', '(best)']
Método n.º 2: usar la comprensión de listas + isinstance() + eval()
La combinación de los métodos anteriores también se puede usar para resolver este problema. En este eval() asume que los paréntesis son tuplas y ayuda a la extracción de strings dentro de ellos.
Python3
# Python3 code to demonstrate working of # Extract substrings between brackets # Using list comprehension + eval() + isinstance() # initializing string test_str = "[(234, ), 4, (432, )]" # printing original string print("The original string is : " + test_str) # Extract substrings between brackets # Using list comprehension + eval() + isinstance() res = [str(idx) for idx in eval(test_str) if isinstance(idx, tuple)] # printing result print("The element between brackets : " + str(res))
The original string is : [(234, ), 4, (432, )] The element between brackets : ['(234, )', '(432, )']
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