¿Cuál es la mejor forma de comprobar si StringA = StringB con otro StringC insertado en algún punto arbitrario?Encontrar una inserción en una cadena
Por ejemplo, dada abcdef
y abcXYZdef
, quiero encontrar que abcXYZdef
es abcdef
con XYZ
inserta en la posición 4.
Por otra parte, dado abcdef
y abRSTcdXYZef
, quiero encontrar que la primera cadena no se puede convertir en el segundo con solo una inserción.
Sé que podría examinar StringA carácter por carácter, desde ambos extremos, y comprobar si cubre la totalidad de StringB, pero sería tedioso escribirlo. También sería bastante lento hacer esto en Python (en el que estoy trabajando) y preferiría no escribir una extensión C especial solo para esto.
¿Hay alguna cosa inteligente que pueda hacer con Regex u otras funciones estándar de manipulación de cadenas que puedan hacer esto por mí?
editar: Para aclarar, StringC es completamente desconocido; Puede que ni siquiera haya un StringC válido, y querré saber si ese es el caso.
Sería probablemente ayudará si ha realizado su muestra cadena más corta y más fácil de comprender. –
¿De verdad crees que sería tan tedioso escribir? Python tiene las cosas buenas para cortar las subcadenas 's1 [: n] == s2 [: n]'.Por supuesto, no es tremendamente eficiente, pero creo que no tardaría en codificarlo. – phimuemue
No sé por qué rechazas la solución personaje por personaje sin más. No parece que sean más que unas pocas líneas de código, y sería tan rápido como Python puede ser. –