es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Encontrar la cadena entre dos caracteres dentro de un diccionario

¿Puedo encontrar una subcadena entre los caracteres que quiero encontrar este carácter svm? Miré en https://stackoverflow.com/questions/44258529/get-string-between-two-strings/44258570 y https://stackoverflow.com/questions/3368969/find-string-between-two-substrings. Entonces esta es mi cadena ('svm', SVC()) y quiero encontrar todo entre ' ', por lo que el resultado debería ser svm o dct_test.

“`py
import re
dict<em>SupportVectorMachine = {
"classifier": ('svm', SVC()),
"parameters": {'svm<strong>C':[0.001,0.01,0.1,10, 100],
'svm</strong>gamma':[0.1,0.01],
'svm</em>_kernel':['linear', 'sigmoid']}
}

cadena = dict<em>SupportVectorMachine['classifier']
cadena2 = ('dct</em>test', ThisCouldbeLongerAndShorter())
subcadena = re.findall(r"('(.+?)',",cadena)
print(subcadena)
“`

py
[OUT]
error: missing ), unterminated subpattern at position 0

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para encontrar la subcadena entre los caracteres ', podemos usar expresiones regulares en Python. Aquí hay un ejemplo de código que extrae la subcadena deseada:

    import re
    
    # Cadena de ejemplo
    s = "('svm', SVC())"
    
    # Extraer subcadena entre caracteres '
    match = re.search(r''(.+?)'', s)
    if match:
        subcadena = match.group(1)
        print(subcadena) # output: svm
    

    Este código utiliza la función re.search() para encontrar una coincidencia con el patrón de expresión regular '(.+?)' en la cadena de entrada s. Este patrón coincide con cualquier cadena que comience y termine con el carácter ' y captura la subcadena entre comillas usando los paréntesis (). La parte .+? coincide con cualquier carácter (excepto salto de línea) una o más veces, pero lo menos posible.

    Una vez que tenemos una coincidencia, podemos extraer la subcadena capturada usando el método group(1) del objeto Match, que devuelve el primer grupo capturado en la coincidencia. Finalmente, imprimimos la subcadena resultante en la consola.

    Tenga en cuenta que este enfoque también se puede utilizar para encontrar múltiples apariciones de la subcadena en una cadena más grande utilizando la función re.findall() en lugar de re.search(), como se muestra en el fragmento de código original. Sin embargo, el patrón de expresión regular debe ajustarse para que coincida con toda la cadena entre comillas, como se indica aquí: r''(.+?)',?' (con una coma opcional al final).

Comments are closed.