2017-04-25 4 views
0

Nach viel Frustration und Lesen der Dokumentation kann ich immer noch nicht den Weg finden, eine Suche nach einem Regex-Muster zu finden und Zeichen in allen Übereinstimmungen in der Tabelle für dieses Muster zu ersetzen.Suchen und Ersetzen innerhalb von Regex Ergebnis in Excel VB

Ich habe diesen Inhalt in einer Zelle:

$test string[0] = "this is a test string."; $another test string[431] = "yet another test string"; 

Das ist mein RegexMuster:

"\$(.*?)\[" 

Ausgänge:

test string, another test string 

Ich brauche alle Spiele zu finden und ersetzen der Platz für einen Bindestrich, damit die Ausgabe folgendermaßen aussieht:

test-string, another-test-string 

Irgendwelche Ideen, wie man das macht?

Vielen Dank im Voraus!

+0

Die Ausgabe lautet: 'Test-string, eine anderer Test-string' und der Rest wird ignoriert? Ich bin mir fast sicher, dass du das in zwei Schritten machen musst. –

+0

Im Grunde möchte ich nur eine Suche durchführen und ersetzen für das, was ich in einer Regex suche. Die vollständige Ausgabe wäre: '$ test-string [0] =" dies ist eine Testzeichenfolge. "; $ another-test-string [431] = "Noch ein Teststring"; ' –

Antwort

0

Ich denke, man positiven Vorgriff verwenden kann, d.h .:

ResultString = Regex.Replace(SubjectString, "(?<=\$.*?) (?=.*?\[)", "-") 
+0

Dieser reguläre Ausdruck funktioniert nicht für mich ... fehle ich etwas? Hier ist ein anschauliches Beispiel: Hier ist der Text, den ich im www.regex101.com Editor für einfaches Kopieren-Einfügen eingegeben: (?.? <= \ $ *) ** Regulärer Ausdruck ** ' (? =. *? \ [) ' ** Test-String ** ' $ test string [0] = "einen String testen"; $ string number 2 [231] = "Noch eine andere Zeichenfolge testen. Weitere Wörter"; ' Ich habe viel damit herumgespielt und noch mehr Dokumentation gelesen, kann aber das Problem nicht lösen. –

+0

In Ihrem Beispiel befindet sich die Zeichenfolge in 2 verschiedenen Zeilen. Ich werde es mir ansehen, wenn ich auf meinem Desktop bin. –

+0

Sorry, langsam an diesen nicht-Wysiwyg-Editor gewöhnen. Danke für Ihre Hilfe! :) –