2017-02-23 3 views
0

Ok zu konvertieren, aber das ist, was ich als besteWie minimale Ersatzzeichenfolgen oder regex finden nicht korrekt der Titel kann Zeichenfolge in einer anderen Zeichenfolge

kam

Meine Frage dieses

Beispiel ist see, saw

ich kann mit see-saw konvertieren als

ee ersetzen mit aw

 string srA = "see"; 
     string srB = "saw"; 

     srA = srB.Replace("aw", "ee"); 

Oder

show können sagen, shown

n

Jetzt Original-String hinzufügen, was ich will ist es, mit minimalen Länge von Code, Erzeugen eines solchen Verfahren zu allen verglichenen Strings

Auf der Suche nach Ihren Ideen Wie kann ich es machen? Kann ich Regexes automatisch generieren und anwenden?

C# 6

+0

Das allgemeine Konzept wird als [Abstand bearbeiten] (https://en.wikipedia.org/wiki/Edit_distance) –

+0

@Damien_The_Unbeliever, wie werden Sie Bearbeitungsabstand anwenden, um automatisch 1 in einen anderen konvertieren :) – MonsterMMORPG

+0

I wies darauf hin, dass dieses allgemeine Konzept einen Namen hat und darauf hinweist. Für das eigentliche Problem, das du zu lösen versuchst, denke ich, dass es im Moment für mich keinen Sinn macht - wenn du zwei spezifische Strings hast, weißt du, * wie * du dich zwischen ihnen transformieren kannst, macht aber Sinn Generieren von Code, der * die * Transformation durchführen wird, macht mir nicht viel - weil Sie bereits das Endergebnis dieser Transformation haben. –

Antwort

1

prüfen diffplex und sehen, ob es ist das, was Sie brauchen. Wenn Sie einen benutzerdefinierten Algorithmus erstellen möchten, müssen Sie anstelle der Verwendung einer Bibliothek von Drittanbietern den Quellcode von Code -it verwenden.

Sie können auch überprüfen, this arbeiten für Optimierungen, aber es könnte kompliziert werden.

Dann gibt es auch Diff.NET.

Auch this blog post ist Teil einer Serie bei der Implementierung eines Diff-Tools.

Wenn Sie einfach mehr über das Thema erfahren möchten, sollten Sie Ihre Googling-Bemühungen auf den Levenshtein-Algorithmus richten.

Ich kann nur annehmen, was Ihr Endziel ist, und die Zeit, die Sie investieren wollen, aber ich glaube, dass die erste Bibliothek für die meisten Bedürfnisse ausreichen sollte.

+0

Ty für die Antwort.Ich bin wirklich an der Raumbeschränkung, also muss ich Operation mit Minimalismus speichern. Wie die Funktion replace oder regex. Wenn es einen Regex-Builder gäbe, wäre das super cool. – MonsterMMORPG

+0

Gemessen an dieser Antwort gibt es leider keine, http://stackoverflow.com/questions/10086332/levenshtein-distance-in-regular-expression – nikovn

Verwandte Themen