第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在MySQL中替換正則表達(dá)式?

如何在MySQL中替換正則表達(dá)式?

SMILET 2019-05-25 15:45:59
如何在MySQL中替換正則表達(dá)式?我有一張約500k行的桌子; varchar(255)UTF8列filename包含文件名;我試圖從文件名中刪除各種奇怪的字符 - 我以為我會(huì)使用一個(gè)字符類: [^a-zA-Z0-9()_ .\-]現(xiàn)在,MySQL中是否有一個(gè)函數(shù)可以讓你通過正則表達(dá)式替換?我正在尋找與REPLACE()函數(shù)類似的功能 - 簡化示例如下:SELECT REPLACE('stackowerflow', 'ower', 'over');Output: "stackoverflow"/* does something like this exist? */SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-'); Output: "-tackover-low"我知道REGEXP / RLIKE,但那些只檢查是否有匹配,沒有什么比賽是。(我可以SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]'從PHP腳本做一個(gè)“ ”,做一個(gè)preg_replace然后“ UPDATE foo ... WHERE pkey_id=...”,但這看起來像一個(gè)最后的緩慢和丑陋的黑客)
查看完整描述

4 回答

?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

MySQL 8.0+你可以原生使用REGEXP_REPLACE。

12.5.2正則表達(dá)式

REGEXP_REPLACE(expr,pat,repl [,pos [,occurrence [,match_type]]])

將字符串expr中與模式pat指定的正則表達(dá)式匹配的匹配項(xiàng)替換為替換字符串repl,并返回結(jié)果字符串。如果expr,pat或repl為NULL,則返回值為NULL。

正則表達(dá)式支持

以前,MySQL使用Henry Spencer正則表達(dá)式庫來支持正則表達(dá)式運(yùn)算符(REGEXP,RLIKE)。

正則表達(dá)式支持已使用國際Unicode組件(ICU)重新實(shí)現(xiàn),它提供完整的Unicode支持并且是多字節(jié)安全的。REGEXP_LIKE()函數(shù)以REGEXP和RLIKE運(yùn)算符的方式執(zhí)行正則表達(dá)式匹配,這些運(yùn)算符現(xiàn)在是該函數(shù)的同義詞。此外,REGEXP_INSTR(),REGEXP_REPLACE()和REGEXP_SUBSTR()函數(shù)可用于查找匹配位置并分別執(zhí)行子串替換和提取。

SELECT REGEXP_REPLACE('Stackoverflow','[A-Zf]','-',1,0,'c'); -- Output:-tackover-low

DBFiddle演示


查看完整回答
反對 回復(fù) 2019-05-25
?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

沒有。

但是,如果您可以訪問您的服務(wù)器,則可以使用用戶定義的函數(shù)(UDF),如mysql-udf-regexp。

編輯: MySQL 8.0+你可以原生使用REGEXP_REPLACE。更多回答如上


查看完整回答
反對 回復(fù) 2019-05-25
?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

我的強(qiáng)力方法讓這個(gè)工作只是:

  1. 轉(zhuǎn)儲(chǔ)表 - mysqldump -u user -p database table > dump.sql

  2. 查找并替換幾個(gè)模式 - find /path/to/dump.sql -type f -exec sed -i 's/old_string/new_string/g' {} \;顯然,您可以在文件上執(zhí)行其他perl regeular表達(dá)式。

  3. 導(dǎo)入表格 - mysqlimport -u user -p database table < dump.sql

如果要確保字符串不在數(shù)據(jù)集中的其他位置,請運(yùn)行一些正則表達(dá)式以確保它們都出現(xiàn)在類似的環(huán)境中。在運(yùn)行替換之前創(chuàng)建備份并不困難,以防您意外破壞丟失信息深度的內(nèi)容。


查看完整回答
反對 回復(fù) 2019-05-25
  • 4 回答
  • 0 關(guān)注
  • 1990 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號