2016-04-13 22 views
0

Regexp kullanarak veritabanımdan belirli satırları seçmeye çalışıyorum, ancak bazı nedenlerle çalışmıyor. Neyi yanlış yapıyorum ve nasıl düzeltebilirim?Regexp kullanarak mysql satırları seçme

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

Sanki satırları seçin gerekendir:

* size başladı *

^--- ekstra bir kelimeden sonra boşluk ve yıldız işareti önce birlikte. Ama işe yaramıyor. Nasıl düzeltebilirim?

+1

Muhtemelen O ile '\ *' o çalışıyor '*' –

+0

@PaulSpiegel kaçmak gerekir. – Barmar

+1

Çift ters eğik çizgi kullanın. Ayrıca, tam dizenin eşleştiğinden emin olmanız gerekiyorsa, çapa kullanın: ''^\\ * ([a-zA-Z] +) + \\ * $ '' –

cevap

4

*'dan doğru şekilde çıkmıyorsunuz. Ters eğik çizgi hem dizge hem de düzenli ifade kaçış karakteridir. Düzenli ifade motoru için * kaçan ters eğik çizgi görmek için, dizesi ayrıştırıcı üzerinden almak için ters eğik çizgi kaçmak zorunda.

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