2016-05-22 12 views
-3

Bitte beachten Sie die folgenden Beispiele.Regex zum Entfernen bestimmter Zeichen aus der Zeichenfolge

The next line is ** 

_This line surrounded with emphasis mark_ 

`hey this is crazy` 

**bold** 

Nun möchte ich eine Regex herausfinden, die die Sonderzeichen identifiziert. Grundsätzlich möchte ich string.replaceAll(regex,"") verwenden, so dass ich nur diese Sonderzeichen **, _, `aus der Zeichenfolge ersetzen kann. Betrachte jede Zeile als 1 String.

Ich kann erkennen, dass jedem Sonderzeichen entweder ein Leerzeichen oder eine neue Zeile vorangestellt ist, gefolgt von der Zeichenfolge a, gefolgt von dem Sonderzeichen, das ich entfernen möchte.

Bitte erläutern Sie auch die Regex.

+3

Bitte zeigen Sie den Code, den Sie bisher versucht haben. –

+0

@ WiktorStribiżew Derzeit ist die Regex, die ich dachte, wie folgt. '^ (\\ s | \\ n) (\\ ** | _ |') ' –

+0

Mögliches Duplikat von [Reguläre Ausdrücke lernen] (http://stackoverflow.com/questions/4736/learning-regular-expressions) – Biffen

Antwort

1

können Sie verwenden

"(?<!\\S)(\\*{2}|[_`])|(\\*{2}|[_`])(?!\\S)" 

Siehe regex demo

Die Regex paßt zu jedem ** oder _ oder ` (mit (\*{2}|[_`])) nicht mit einem Nicht-Leerzeichen Symbol vorangestellt (siehe (?<!\\S)) oder einem beliebigen **, _ oder `, auf die kein Nicht-Leerzeichen-Symbol folgt.

Verwandte Themen