| 

.NET C# Java Javascript Exception

1
Hallo Leute,

ich suche das korrekte RegEx-Pattern für folgende Aufgabe:
In einem Text soll bei allen Wörtern, die mit 'c' anfangen und als 2. Buchstaben kein 'h' haben, das 'c' durch ein 'k' ersetzt werden.

Beispiel:
Source: hans carsten change cheed claus
Ergebnis: hans karsten chang cheed klaus

Mit diesem Pattern '(\bc[^h])' klappt es fast, nur leider wird dabei der 2. Buchstabe nach dem 'c' aus dem Wort entfernt (krtsen kaus).
Er soll aber erhalten bleiben.

Wie muss das Pattern aussehen, damit das funktioniert?

Vielen Dank für Eure Hilfe
Carsten
10.06.2013
ille6 25 5
2 Antworten
1
Am besten mit diesem Ausdruck:
\bc(?!h)


Dein Ausdruck ist im Ansatz auch richtig wenn man ihn so umstellt:
(\bc([^h]))

und als Replace-Ausdruck dann folgenden verwendet:
k$2
10.06.2013
Floyd 14,6k 3 9
Floyd 14,6k 3 9
Dein erster Vorschlag ersetzt aber auch die 'c', die innerhalb eines Wortes vorkommen, oder???
Der zweite gehört dafür in die Kategorie: wieder was gelernt... (nämlich die $2-Syntax).
Matthias Hlawatsch 10.06.2013
Nein, das "\b" verhindert das (http://www.regular-expressions.info/wordboundaries.html). Hatte ich aber erst mit einem Edit hinzugefügt falls du dich darauf beziehst.
Floyd 10.06.2013
Stimmt, ich hatte die erste Version geprüft.
Matthias Hlawatsch 10.06.2013
0
Hallo Floyd,
leider kommt mein Dankeschön für die schnelle Lösung etwas spät, aber hier ist es.

Vielen Dank
Carsten
15.07.2013
ille6 25 5
Kein Problem
Floyd 15.07.2013
Hallo ille6,

es wäre schön, wenn du in Zukunft daran denken würdest, solche "Danke"-Beiträge und Ähnliches nicht als eigenständige Antwort zu posten sondern als Kommentar (dafür gibts es links unten unter jeder Antwort den Link "Kommentiere").
Das hilft dabei, die Übersicht zu wahren :)
Karill Endusa 16.07.2013

Stelle deine Regex-Frage jetzt!