2016-04-13 13 views
0

Ich versuche, bestimmte Zeilen aus meiner Datenbank mit regexp auswählen, aber es funktioniert nicht aus irgendeinem Grund. Was mache ich falsch und wie repariere ich es?Auswählen von Zeilen aus MySQL mit regexp

select response from allData where response regexp '\*([a-zA-Z]+)+\*' 

Es nehme ist Zeilen auszuwählen, wie:

* Sie schlägt *

^--- Mit einem zusätzlichen Raum nach dem Wort, und vor dem Stern. Aber es funktioniert nicht. Wie repariere ich es?

+1

Sie müssen wahrscheinlich entkommen '*' –

+0

@PaulSpiegel Er versucht das mit '\ *'. – Barmar

+1

Verwenden Sie doppelte Backslashes. Wenn Sie sicherstellen müssen, dass die vollständige Zeichenfolge übereinstimmt, verwenden Sie außerdem Anker: ''^^\\ * ([a-zA-Z] +) + \\ * $'' –

Antwort

4

Sie entgehen nicht der * korrekt. Backslash ist sowohl der Escape-Zeichensatz als auch der Ausdruck für reguläre Ausdrücke. Damit die Engine für reguläre Ausdrücke den umgekehrten Schrägstrich sehen kann, der die * ausblendet, müssen Sie den Backslash umgehen, um ihn durch den Zeichenfolgenparser zu erhalten.

Verwandte Themen