掌握REGEXP_REPLACE:從正則表達(dá)式原理到SQL文本清洗實(shí)戰(zhàn)
1. 從“替換”到“重塑”為什么你需要掌握REGEXP_REPLACE在數(shù)據(jù)處理和文本清洗的日常工作中我們最常打交道的就是字符串。無論是從數(shù)據(jù)庫里導(dǎo)出的用戶日志還是從API接口爬取的商品信息原始文本往往夾雜著各種“雜質(zhì)”多余的空格、亂碼字符、不一致的日期格式、需要脫敏的手機(jī)號(hào)中間四位或是HTML標(biāo)簽。面對這些簡單的REPLACE函數(shù)常常力不從心因?yàn)樗竽阒来_切的、固定的字符序列。但現(xiàn)實(shí)情況是我們需要處理的往往是模式而非固定文本。這就是正則表達(dá)式Regular Expression大顯身手的地方。而REGEXP_REPLACE則是將正則表達(dá)式的強(qiáng)大模式匹配能力與字符串替換功能完美結(jié)合的工具。它不再問你“要把‘ABC’換成什么”而是問你“要把所有符合‘連續(xù)三個(gè)大寫字母’這個(gè)模式的東西換成什么”。這個(gè)思維的轉(zhuǎn)變是處理復(fù)雜文本問題的分水嶺。最近在數(shù)據(jù)清洗的社群里regexp_replace去特殊符號(hào)成了一個(gè)高頻討論點(diǎn)這恰恰反映了大家在處理非結(jié)構(gòu)化數(shù)據(jù)時(shí)的共同痛點(diǎn)。特殊符號(hào)可能來自不同的編碼、復(fù)制粘貼的富文本或是系統(tǒng)間的非法字符它們沒有固定的位置和數(shù)量用常規(guī)方法清理起來繁瑣且易錯(cuò)。REGEXP_REPLACE提供了一種聲明式的解決方案你只需要定義“什么是特殊符號(hào)”它就能幫你一掃而光。這篇文章我將以一個(gè)多年與臟數(shù)據(jù)“搏斗”的老兵視角為你徹底拆解REGEXP_REPLACE。我們不只講語法更要深入它背后的匹配邏輯、性能陷阱和那些官方文檔里不會(huì)寫的實(shí)戰(zhàn)技巧。無論你是SQL分析師、后端開發(fā)還是數(shù)據(jù)工程師掌握它意味著你擁有了將混亂文本重塑為規(guī)整數(shù)據(jù)的“手術(shù)刀”。2. REGEXP_REPLACE的核心語法與匹配邏輯拆解不同數(shù)據(jù)庫系統(tǒng)如MySQL、PostgreSQL、Oracle、Hive、Spark SQL對REGEXP_REPLACE的支持和語法細(xì)節(jié)略有不同但其核心思想是一致的。我們以兼容性較好的PostgreSQL及與其語法相近的Redshift、BigQuery的語法作為基準(zhǔn)進(jìn)行講解因?yàn)樗δ芟鄬ν暾颓逦?.1 基礎(chǔ)語法結(jié)構(gòu)REGEXP_REPLACE函數(shù)的基本調(diào)用形式如下REGEXP_REPLACE(source_string, pattern, replacement_string, [flags])它包含四個(gè)參數(shù)其中前三個(gè)是必需的source_string需要進(jìn)行搜索和替換的原始文本字符串。pattern一個(gè)正則表達(dá)式模式定義了要在source_string中查找的內(nèi)容。replacement_string用于替換每個(gè)匹配到的pattern的字符串。flags可選一個(gè)或多個(gè)修飾符用于改變匹配行為如是否區(qū)分大小寫、是否多行匹配等。函數(shù)執(zhí)行時(shí)會(huì)在source_string中從左到右掃描尋找所有與pattern匹配的子串然后用replacement_string替換掉這些子串最后返回替換完成的新字符串。如果沒有找到匹配項(xiàng)則原樣返回source_string。2.2 理解“替換”的粒度全局替換與首次替換這是新手最容易困惑的點(diǎn)之一。REGEXP_REPLACE默認(rèn)是全局替換Global Replace嗎答案是取決于數(shù)據(jù)庫系統(tǒng)和flags參數(shù)。在PostgreSQL/Redshift中默認(rèn)行為是替換所有匹配項(xiàng)全局替換。除非你使用g標(biāo)志不在PG中g(shù)標(biāo)志是用于指定使用POSIX正則表達(dá)式而不是控制全局替換。實(shí)際上PG的regexp_replace在默認(rèn)情況下就會(huì)替換所有匹配項(xiàng)。如果你只想替換第一個(gè)匹配項(xiàng)需要使用g標(biāo)志的反面即指定一個(gè)起始位置參數(shù)或者使用SUBSTRING配合regexp_matches。更常見的做法是使用regexp_replace的另一個(gè)重載形式它包含一個(gè)start參數(shù)但通常我們通過flags中的nnewline-sensitive等標(biāo)志來影響匹配全局替換是默認(rèn)行為。為了清晰起見我們記住結(jié)論在常見場景下它默認(rèn)替換所有。在MySQL中REGEXP_REPLACE函數(shù)MySQL 8.0默認(rèn)只替換第一個(gè)匹配項(xiàng)。如果你想替換所有匹配項(xiàng)必須顯式地在flags參數(shù)中加上g。在Hive/Spark SQL中行為類似MySQL通常需要g標(biāo)志來進(jìn)行全局替換。實(shí)操心得永遠(yuǎn)不要假設(shè)默認(rèn)行為。在編寫跨平臺(tái)SQL腳本或使用新數(shù)據(jù)庫時(shí)第一件事就是寫一個(gè)簡單的測試用例驗(yàn)證REGEXP_REPLACE的默認(rèn)替換行為。例如用SELECT REGEXP_REPLACE(aaa, a, b);測試如果返回bbb則是全局替換返回baa則是只替換第一個(gè)。這個(gè)小習(xí)慣能避免很多隱蔽的錯(cuò)誤。2.3 關(guān)鍵參數(shù)flags詳解flags參數(shù)是一個(gè)字符串通過單個(gè)字符控制不同的匹配模式。常見的標(biāo)志包括i忽略大小寫Case-insensitive。例如模式abc可以匹配abc、Abc、ABC。g全局匹配Global。如上所述在某些系統(tǒng)中用于啟用替換所有匹配項(xiàng)而在另一些系統(tǒng)中可能是默認(rèn)或無效。m多行模式Multiline。改變^和$的含義使它們分別匹配每一行的開頭和結(jié)尾而不是整個(gè)字符串的開頭和結(jié)尾。這在處理包含換行符的文本塊時(shí)非常有用。n點(diǎn)號(hào).匹配換行符。默認(rèn)情況下.匹配除換行符外的任何字符。使用n標(biāo)志后.將匹配任何字符包括換行符。x忽略模式中的空白字符和注釋。允許你在復(fù)雜的正則表達(dá)式中添加空格和注釋以提高可讀性。你可以組合使用多個(gè)標(biāo)志例如gi表示全局替換且忽略大小寫。2.4 替換字符串中的“魔法變量”反向引用replacement_string并非只能是固定文本。它可以使用反向引用來引用在pattern中被括號(hào)()捕獲的子組。這是REGEXP_REPLACE最強(qiáng)大的特性之一。語法在replacement_string中使用\1、\2、\3……來分別引用第一個(gè)、第二個(gè)、第三個(gè)捕獲組的內(nèi)容。經(jīng)典案例日期格式重排假設(shè)原始日期格式是MM/DD/YYYY如12/31/2023我們需要將其轉(zhuǎn)換為YYYY-MM-DD格式2023-12-31。SELECT REGEXP_REPLACE(12/31/2023, (\d{2})/(\d{2})/(\d{4}), \3-\1-\2); -- 結(jié)果2023-12-31拆解模式(\d{2})/(\d{2})/(\d{4})匹配兩個(gè)數(shù)字月、斜杠、兩個(gè)數(shù)字日、斜杠、四個(gè)數(shù)字年。三對括號(hào)創(chuàng)建了三個(gè)捕獲組。替換字符串\3-\1-\2意味著用“第三組年 ‘-’ 第一組月 ‘-’ 第二組日”來替換整個(gè)匹配到的日期字符串。避坑指南不同數(shù)據(jù)庫對反向引用的語法可能不同。在PostgreSQL中使用\1、\2而在MySQL中使用$1、$2。在Oracle中也是使用\1、\2。混淆語法會(huì)導(dǎo)致替換失敗或出現(xiàn)字面值\1。務(wù)必查閱你所使用數(shù)據(jù)庫的官方文檔。3. 實(shí)戰(zhàn)演練從基礎(chǔ)清洗到復(fù)雜重構(gòu)理解了核心邏輯后我們通過一系列由淺入深的場景來看看REGEXP_REPLACE如何解決實(shí)際問題。3.1 場景一基礎(chǔ)清洗——移除所有特殊符號(hào)和多余空格這是“網(wǎng)絡(luò)熱詞”對應(yīng)的經(jīng)典場景。假設(shè)我們有一串混亂的用戶輸入用戶輸入“ Hello, World! This is a test-string... ”目標(biāo)保留字母、數(shù)字、漢字和單個(gè)空格移除其他所有標(biāo)點(diǎn)、特殊符號(hào)并壓縮多余空格。WITH sample_data AS ( SELECT Hello, World! This is a test-string... AS dirty_text ) SELECT dirty_text AS 原始文本, -- 第一步移除所有非字母、數(shù)字、漢字和空格之外的字符 REGEXP_REPLACE(dirty_text, [^a-zA-Z0-9\u4e00-\u9fa5\s], , g) AS step1, -- 第二步將連續(xù)多個(gè)空格壓縮為單個(gè)空格 REGEXP_REPLACE( REGEXP_REPLACE(dirty_text, [^a-zA-Z0-9\u4e00-\u9fa5\s], , g), \s, , g ) AS step2, -- 第三步去除首尾空格也可用TRIM這里演示REGEXP REGEXP_REPLACE( REGEXP_REPLACE( REGEXP_REPLACE(dirty_text, [^a-zA-Z0-9\u4e00-\u9fa5\s], , g), \s, , g ), ^\s|\s$, , g ) AS 最終清洗結(jié)果 FROM sample_data;執(zhí)行結(jié)果預(yù)估step1: Hello World This is a teststring (逗號(hào)、感嘆號(hào)、連字符、句點(diǎn)被移除)step2: Hello World This is a teststring (連續(xù)空格被壓縮)最終清洗結(jié)果:Hello World This is a teststring(首尾空格被移除)模式解釋[^...]這是一個(gè)否定字符集。匹配任何不在方括號(hào)內(nèi)的字符。a-zA-Z0-9匹配所有大小寫字母和數(shù)字。\u4e00-\u9fa5這是Unicode范圍匹配基本的中文字符。這是一個(gè)常用但并非完全精確的漢字范圍對于絕大多數(shù)場景足夠用。\s匹配任何空白字符空格、制表符、換行符等。\s匹配一個(gè)或多個(gè)空白字符。^\s|\s$匹配字符串開頭的一個(gè)或多個(gè)空白符(^\s)或者(|)字符串結(jié)尾的一個(gè)或多個(gè)空白符(\s$)。注意事項(xiàng)清洗邏輯的步驟順序很重要。如果先壓縮空格可能會(huì)把“單詞特殊符號(hào)空格”變成“單詞 空格”然后再移除特殊符號(hào)結(jié)果中間就只剩一個(gè)空格邏輯上可能沒問題但思考起來更繞。通?!跋纫瞥s質(zhì)再規(guī)整格式”的順序更清晰。3.2 場景二數(shù)據(jù)脫敏——隱藏手機(jī)號(hào)中間四位這是一個(gè)常見的隱私保護(hù)需求。假設(shè)我們有一列user_contact里面混雜著各種信息我們需要找到并脫敏其中的手機(jī)號(hào)。SELECT user_contact AS 原始信息, REGEXP_REPLACE( user_contact, (\d{3})(\d{4})(\d{4}), -- 匹配11位手機(jī)號(hào)并分成3組 \1****\3, -- 用“前3位 **** 后4位”替換 g ) AS 脫敏后信息 FROM user_table;模式解釋(\d{3})(\d{4})(\d{4})精確匹配11位數(shù)字并將其分為三組。替換時(shí)第一組(\1)和第三組(\3)保留中間的第二組被替換為四個(gè)星號(hào)****。進(jìn)階思考這個(gè)模式會(huì)匹配任何連續(xù)的11位數(shù)字包括可能不是手機(jī)號(hào)的數(shù)字如身份證號(hào)的一部分。在嚴(yán)格場景下需要更精確的模式例如匹配以特定號(hào)段如13x, 14x, 15x, 17x, 18x, 19x開頭的數(shù)字(1[3-9]\d)(\d{4})(\d{4})。3.3 場景三復(fù)雜提取與重構(gòu)——解析非標(biāo)準(zhǔn)化地址假設(shè)地址數(shù)據(jù)以混亂的字符串存儲(chǔ)“北京市海淀區(qū)中關(guān)村大街27號(hào)100080張三收”。我們希望提取出省市區(qū)、街道、郵編和姓名。這超出了簡單替換的范圍但REGEXP_REPLACE可以配合捕獲組進(jìn)行重構(gòu)。不過更優(yōu)雅的方式可能是使用REGEXP_SUBSTR或REGEXP_MATCHES來提取。這里我們用REGEXP_REPLACE展示一種“提取-保留”的思路即用替換的方式“刪掉”我們不想要的部分或者重新排列。SELECT address_str AS 原始地址, -- 提取姓名假設(shè)“收”字前是姓名 REGEXP_REPLACE(address_str, ^.*([^])收$, \1) AS 提取的姓名, -- 重構(gòu)地址格式移除姓名和郵編 REGEXP_REPLACE( REGEXP_REPLACE(address_str, \d{6}.*$, ), -- 先移除郵編和姓名部分 ([省市縣區(qū)]), \1 -- 在省、市、縣、區(qū)后面加一個(gè)空格使其更清晰此操作需謹(jǐn)慎可能誤傷 ) AS 重構(gòu)的地址 FROM address_table;這個(gè)例子略顯生硬但它說明了思路通過嵌套使用REGEXP_REPLACE可以一步步將雜亂文本塑造成目標(biāo)格式。對于復(fù)雜的解析任務(wù)通常建議結(jié)合多個(gè)正則函數(shù)SUBSTRING、REGEXP_SUBSTR、REGEXP_MATCHES以及CASE WHEN語句來完成REGEXP_REPLACE是其中負(fù)責(zé)“替換”和“移除”環(huán)節(jié)的利器。4. 性能陷阱與高級優(yōu)化策略正則表達(dá)式功能強(qiáng)大但濫用或編寫低效的模式會(huì)導(dǎo)致嚴(yán)重的性能問題尤其是在處理海量數(shù)據(jù)時(shí)。4.1 常見性能陷阱過度使用通配符.*或.*?尤其是開頭的.*會(huì)導(dǎo)致大量的回溯backtracking。例如.*.*\.com匹配一個(gè)郵箱引擎會(huì)先貪婪地吃掉整個(gè)字符串然后發(fā)現(xiàn)后面沒有再一點(diǎn)點(diǎn)“吐”出來回溯效率極低。應(yīng)盡量使用更精確的字符集或限定符。嵌套的量詞如(a)這種模式在匹配失敗時(shí)會(huì)產(chǎn)生指數(shù)級的回溯可能導(dǎo)致“災(zāi)難性回溯”Catastrophic Backtracking使引擎掛起。在循環(huán)或頻繁調(diào)用的查詢中使用復(fù)雜正則如果要對一個(gè)百萬行的表每一行都執(zhí)行一個(gè)復(fù)雜的REGEXP_REPLACE成本會(huì)非常高。4.2 優(yōu)化策略與替代方案盡量具體化模式用\d代替.匹配數(shù)字用[a-z]代替.匹配小寫字母。使用限定符{n,m}代替*或如果長度已知。差SELECT ... WHERE REGEXP_REPLACE(column, .*.*, ) ...優(yōu)SELECT ... WHERE REGEXP_REPLACE(column, \w\w\.\w, ) ...(雖然仍不完美但更精確)使用更簡單的字符串函數(shù)組合如果需求能用LEFT、RIGHT、SUBSTRING、POSITION、TRIM等基礎(chǔ)函數(shù)解決絕對不要用正則。正則表達(dá)式是“重型武器”。示例去除字符串首尾的特定字符如括號(hào)。正則方案REGEXP_REPLACE(col, ^[\[\]]|[\[\]]$, , g)簡單函數(shù)方案TRIM(BOTH [] FROM col)。后者性能遠(yuǎn)超前者。預(yù)編譯或索引某些數(shù)據(jù)庫如PostgreSQL支持為正則表達(dá)式創(chuàng)建索引使用pg_trgm擴(kuò)展的GIN/GiST索引或者將常用的、不變的正則模式在應(yīng)用層編譯好再傳入。在Hive/Spark中考慮能否在數(shù)據(jù)ETL的早期階段就用UDF用戶定義函數(shù)完成清洗避免在即席查詢中頻繁使用。分步處理物化中間結(jié)果對于極其復(fù)雜的清洗邏輯不要試圖用一個(gè)REGEXP_REPLACE完成所有事情??梢詫懸粋€(gè)多步驟的CTE公用表表達(dá)式或臨時(shí)表每一步只做一個(gè)簡單的替換或提取并將結(jié)果物化到臨時(shí)表中。這樣代碼更易讀、易調(diào)試有時(shí)數(shù)據(jù)庫優(yōu)化器也能更好地處理。血淚教訓(xùn)我曾遇到一個(gè)生產(chǎn)查詢因?yàn)橐粋€(gè)包含‘.*(\d).*’的REGEXP_REPLACE在數(shù)億條記錄上運(yùn)行導(dǎo)致整個(gè)查詢超時(shí)。后來將其拆解為先使用SUBSTRING和POSITION判斷是否有數(shù)字再進(jìn)行處理性能提升了上百倍。記住正則表達(dá)式是“最后的武器”。5. 跨數(shù)據(jù)庫方言的適配與調(diào)試技巧不同數(shù)據(jù)庫的REGEXP_REPLACE實(shí)現(xiàn)有差異編寫可移植的SQL或進(jìn)行遷移時(shí)需要格外小心。5.1 方言差異對比特性PostgreSQL / RedshiftMySQL (8.0)OracleHive / Spark SQL函數(shù)名REGEXP_REPLACEREGEXP_REPLACEREGEXP_REPLACEREGEXP_REPLACE默認(rèn)替換替換所有匹配項(xiàng)替換第一個(gè)匹配項(xiàng)替換所有匹配項(xiàng)替換第一個(gè)匹配項(xiàng)全局替換標(biāo)志默認(rèn)全局無特定g標(biāo)志控制需使用g標(biāo)志默認(rèn)全局‘g’標(biāo)志無效需使用g標(biāo)志反向引用語法\1,\2, ...$1,$2, ...\1,\2, ...$1,$2, ... (Spark)常見標(biāo)志i,g(POSIX),m,n,xi,c,m,n,ui,c,m,n,xi,g,m5.2 調(diào)試與驗(yàn)證技巧從小處著手不要直接對生產(chǎn)數(shù)據(jù)運(yùn)行復(fù)雜的REGEXP_REPLACE。先用SELECT語句配合幾個(gè)有代表性的樣本數(shù)據(jù)包括邊界情況、異常數(shù)據(jù)進(jìn)行測試。使用REGEXP_MATCHES或REGEXP_SUBSTR輔助調(diào)試在不確定模式是否能匹配時(shí)先用REGEXP_MATCHES返回匹配的數(shù)組或REGEXP_SUBSTR返回匹配的子串看看引擎到底找到了什么。-- 在PostgreSQL中調(diào)試 SELECT REGEXP_MATCHES(abc123def456, \d, g); -- 返回 {123}, {456}逐步構(gòu)建復(fù)雜模式對于復(fù)雜的正則表達(dá)式像搭積木一樣一步步構(gòu)建。先寫核心部分測試通過后再添加邊界條件、分組等。在線工具輔助利用諸如 regex101.com、regexr.com 等在線正則表達(dá)式測試工具。它們可以高亮顯示匹配部分、解釋模式含義并支持不同的正則風(fēng)格PCRE、JavaScript等選擇與你數(shù)據(jù)庫最接近的。但務(wù)必注意在線工具的解釋和數(shù)據(jù)庫實(shí)現(xiàn)可能有細(xì)微差別最終測試必須在數(shù)據(jù)庫環(huán)境中進(jìn)行。REGEXP_REPLACE的掌握是一個(gè)從“知道怎么用”到“明白為什么這么用”再到“清楚什么時(shí)候不該用”的漸進(jìn)過程。它不是你SQL工具箱里唯一的工具但絕對是處理文本“頑疾”時(shí)最鋒利的那一把。開始時(shí)你可能會(huì)覺得語法晦澀但一旦你習(xí)慣了用模式的眼光去看待文本很多曾經(jīng)令人頭疼的清洗任務(wù)都會(huì)變得清晰而簡單。真正的熟練體現(xiàn)在你能在功能、性能和代碼可讀性之間找到最佳平衡點(diǎn)。

相關(guān)新聞

<p>安陽街頭巷尾,黃金鉑金白銀回收門店鱗次櫛比,招牌林立間難免魚龍混雜,市民想要甄別靠譜變現(xiàn)渠道著實(shí)需要火眼金睛。為幫街坊鄰里避開套路、尋得安心,小編實(shí)地走訪安陽多個(gè)商圈,逐一核驗(yàn)經(jīng)營資質(zhì)與交易口碑

<p>安陽街頭巷尾,黃金鉑金白銀回收門店鱗次櫛比,招牌林立間難免魚龍混雜,市民想要甄別靠譜變現(xiàn)渠道著實(shí)需要火眼金睛。為幫街坊鄰里避開套路、尋得安心,小編實(shí)地走訪安陽多個(gè)商圈,逐一核驗(yàn)經(jīng)營資質(zhì)與交易口碑

鞍山這座重工業(yè)底蘊(yùn)深厚的城市,街頭巷尾的黃金鉑金白銀回收門店鱗次櫛比,但其中魚龍混雜,報(bào)價(jià)虛高、克扣成色、臨時(shí)壓價(jià)等套路屢見不鮮。為幫市民甄選靠譜變現(xiàn)渠道,小編實(shí)地走訪、反復(fù)核驗(yàn),篩選出本地優(yōu)質(zhì)誠信商戶&…

2026/8/3 6:58:36 閱讀更多
AC1對象映射工具入門指南:從原理到實(shí)戰(zhàn),告別手動(dòng)賦值

AC1對象映射工具入門指南:從原理到實(shí)戰(zhàn),告別手動(dòng)賦值

1. 項(xiàng)目概述:什么是AC1?如果你剛接觸“AC1”這個(gè)詞,可能會(huì)有點(diǎn)懵。它不像Python、Docker那樣有明確的官方定義,更像是一個(gè)在特定技術(shù)圈子里流傳的“黑話”或項(xiàng)目代號(hào)。根據(jù)我這些年混跡開源社區(qū)和項(xiàng)目實(shí)戰(zhàn)的經(jīng)驗(yàn),“AC1…

2026/8/3 6:48:30 閱讀更多
Redis事務(wù)詳解:原理、實(shí)戰(zhàn)、坑點(diǎn)與實(shí)踐

Redis事務(wù)詳解:原理、實(shí)戰(zhàn)、坑點(diǎn)與實(shí)踐

一、什么是Redis事務(wù)?1.1 Redis事務(wù)是一組一次性、順序性、排他性執(zhí)行的Redis命令集合。事務(wù)會(huì)將多個(gè)命令打包,一次性發(fā)送給Redis服務(wù)端執(zhí)行,執(zhí)行過程中不會(huì)被其他客戶端命令插隊(duì),保證批量命令的執(zhí)行完整性。1.2 核心特性&#xf…

2026/8/3 11:58:47 閱讀更多
AI演講能力訓(xùn)練實(shí)戰(zhàn)手冊(企業(yè)級落地白皮書):覆蓋語音、語義、韻律、可信度四大維度

AI演講能力訓(xùn)練實(shí)戰(zhàn)手冊(企業(yè)級落地白皮書):覆蓋語音、語義、韻律、可信度四大維度

更多請點(diǎn)擊: https://codechina.net 第一章:AI演講能力訓(xùn)練的演進(jìn)邏輯與企業(yè)價(jià)值錨點(diǎn) AI演講能力訓(xùn)練已從早期語音合成(TTS)驅(qū)動(dòng)的單向播報(bào),演進(jìn)為融合語義理解、情感建模、實(shí)時(shí)反饋與多模態(tài)協(xié)同的閉環(huán)交互系統(tǒng)。這一…

2026/8/3 11:58:47 閱讀更多
hot-35 搜索插入位置

hot-35 搜索插入位置

解法&#xff1a;二分搜索 注意最后一步細(xì)節(jié)class Solution:def searchInsert(self, nums: List[int], target: int) -> int:nums_len len(nums)left 0right nums_len - 1while left < right:mid (left right) //2if nums[mid] target:return midelif nums[mid] &…

2026/8/3 11:58:47 閱讀更多
數(shù)字人多語種播報(bào),口型真能對上嗎?

數(shù)字人多語種播報(bào),口型真能對上嗎?

做海外內(nèi)容半年&#xff0c;最頭疼的不是寫文案&#xff0c;是錄口播——英語、西語、日語輪著來&#xff0c;真人出鏡一緊張就卡殼&#xff0c;重錄十遍口型還對不上音頻&#xff0c;剪輯師都快辭職了。 直到試了 數(shù)字人口播智能體&#xff0c;才明白什么叫‘上傳即同步’。 上…

2026/8/3 11:48:46 閱讀更多
全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機(jī)制

全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機(jī)制

更多請點(diǎn)擊&#xff1a; https://kaifayun.com 第一章&#xff1a;全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎概覽 名片AI引擎是企業(yè)級智能文檔處理的核心組件&#xff0c;專注于高精度OCR、語義結(jié)構(gòu)化提取與跨語言實(shí)體對齊。截至2024年第三季度&#xff0c;全球范圍內(nèi)僅…

2026/8/3 0:07:47 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南&#xff1a;AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書,視頻號(hào)上,賺錢從來沒有這么容易過! 支持本地語音模型chatTTS,fasterwhisper,…

2026/8/3 7:44:46 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定&#xff01;QQ空間歷史說說完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過&#xff0c;那些年發(fā)過的QQ空間說說&#xff0c;那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料&#xff08;Applied Materials&#xff09;公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)&#xff08;0100-02186&#xff09;的核心特點(diǎn)如下&#xff1a;專用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清&#xff08;Nissei&#xff09;品牌的一款工業(yè)用三相異步電機(jī)&#xff0c;適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)&#xff08;FFMN-32L-10-T0 40AX&#xff09;的核心特點(diǎn)如下&#xff1a;三相交流異步電動(dòng)機(jī)。額定…

2026/8/2 2:52:49 閱讀更多