2016-02-25 50 views
1

好吧,我有我的數據庫轉儲這些字符串:語言標記之後清潔特定字符串的一種方式

"[:nl]Some nl text here[:fr]Some french text here" 
"[:nl]Some other nl text here[:fr]Some other french text here" 

我想要做的就是做轉儲搜索替換,並移除後的字符串[:fr]直到最後雙引號",連同標籤本身[:fr]

有人可以提供可以做到這一點的正則表達式嗎?

+0

某些任務最好是用「真實」語言完成,而不是SQL。 –

回答

0

嘗試這樣的:

select REPLACE('"[:nl]Some nl text here[:fr]Some french text here"', 
       SUBSTRING('"[:nl]Some nl text here[:fr]Some french text here"', 
         LOCATE('[:fr]', '"[:nl]Some nl text here[:fr]Some french text here"'), LENGTH('"[:nl]Some nl text here[:fr]Some french text here"') - LOCATE('"', 
          REVERSE('"[:nl]Some nl text here[:fr]Some french text here"')) - LOCATE('[:fr]', "[:nl]Some nl text here[:fr]Some french text here") + 2), '') 

SQL FIDDLE DEMO

編輯:

試試這個:

select substring_index('[:nl]Some nl text here[:fr]Some french text here','[:fr]',1) 

SQL FIDDLE DEMO

+0

感謝您的回答,但那不是我想要做的。我想做一個簡單的字符串搜索,用mysql源代碼中的正則表達式替換,並刪除以'[:fr]開頭的字符串部分' – Zota

相關問題