Qual è il modo migliore per verificare se StringA = StringB con un altro StringC inserito in un punto arbitrario?Trovare un inserimento in una stringa
Ad esempio, dato abcdef
e abcXYZdef
, voglio scoprire che abcXYZdef
è abcdef
con XYZ
inserito alla posizione 4.
D'altra parte, dato abcdef
e abRSTcdXYZef
, voglio scoprire che la prima stringa impossibile essere trasformato nel secondo con un solo inserimento.
So che potrei andare su StringA carattere per carattere, da entrambe le estremità, e controllare se copre l'intero StringB, ma sarebbe piuttosto noioso scrivere. Sarebbe anche piuttosto lento farlo in Python (sul quale sto lavorando) e preferirei non scrivere una speciale estensione C solo per questo.
Ci sono delle cose intelligenti che posso fare con Regex o altre funzioni di manipolazione delle stringhe standard che possono farlo per me?
modifica: per chiarire, StringC è completamente sconosciuto; Potrebbe non esserci nemmeno un StringC valido e vorrò sapere se questo è il caso.
Sarebbe probabilmente utile se hai fatto il tuo campione stringa più breve e più facile da comprendere. –
Pensi davvero che sarebbe noioso scrivere? Python ha le simpatiche fette per il controllo delle sottostringhe 's1 [: n] == s2 [: n]'.Ovviamente non è incredibilmente efficiente, ma penso che non ci vorrà molto tempo per codificarlo. – phimuemue
Non so perché respingi la soluzione carattere per carattere. Non sembra che ci siano più di poche righe di codice, e sarebbe veloce quanto il puro Python. –