Python正則表達式處理中日韓字符過濾全解析

Python正則表達式處理中日韓字符過濾全解析

一、核心原理:Unicode字符范圍定位

中日韓字符在Unicode中的分布:

  • 中文:\u4e00-\u9fff(基本區) + \u3400-\u4dbf(擴展A區) + \U00020000-\U0002a6df(擴展B區)
  • 日文:
    • 平假名:\u3040-\u309f
    • 片假名:\u30a0-\u30ff
    • 漢字:\u4e00-\u9fbf(與中文重疊)
  • 韓文:\uac00-\ud7a3(諺文音節) + \u1100-\u11ff(古韓文字母)

二、基礎過濾模板

1. 簡單替換示例

替換日文韓文,保留中文

import re text = "混合文本:Hello 你好 こんにちは ?????"
pattern = r"[\u3040-\u30ff\uac00-\ud7a3]"
result = re.sub(pattern, "[CJK]", text, flags=re.UNICODE)
print(result)  # 混合文本:Hello 你好 [CJK][CJK][CJK][CJK][CJK] [CJK][CJK][CJK][CJK][CJK]

2. 保留空格優化版

# 使用正向前瞻斷言保留空格
pattern = r"([\u3040-\u30ff\uac00-\ud7a3]+|[\u30a0-\u30ff])"
result = re.sub(pattern, "[CJK]", text, flags=re.UNICODE)print(result)  #  混合文本:Hello 你好 [CJK] [CJK]

三、工業級解決方案

1. 多層級過濾系統

def cjk_filter(text, replace_char="", mode="strict"):cjk_ranges = {"basic": r"[\u3040-\u30ff\uac00-\ud7a3]","extended": r"[\u3400-\u4dbf\U00020000-\U0002a6df\u3040-\u30ff\uac00-\ud7a3\u1100-\u11ff]"}pattern = re.compile(cjk_ranges[mode], flags=re.UNICODE)return pattern.sub(replace_char, text)# 使用示例
text = "2025新版日漢字:峠 働 鱪 ?"
print(cjk_filter(text, mode="extended"))  # 輸出:2025新版日漢字:  ? 

2. 上下文感知過濾

# 保留英文與CJK混合詞中的字母
def smart_filter(text):return re.sub(r"(?<![a-zA-Z])[\u3040-\u30ff\uac00-\ud7a3]+(?![a-zA-Z])","",text)text = "Python3.12新增了「こんにちは 」功能"
print(smart_filter(text))  # 輸出:Python3.12新增了「」功能

四、性能優化方案

1. 預編譯正則表達式

# 百萬級文本處理提速方案
class CJKProcessor:def __init__(self):self.pattern = re.compile(r"[\u3040-\u30ff\uac00-\ud7a3]+",flags=re.UNICODE)def process(self, text):return self.pattern.sub("[CJK]", text)processor = CJKProcessor()
print(processor.process("批量處理測試:こんにちは"))  # 輸出:批量處理測試:[CJK]

五、特殊場景處理

1. 帶注音字符處理

# 過濾日語振假名(如:漢字󠄀)
text = "振り仮名付き: 漢󠄁字"
result = re.sub(r"[\u3040-\u30ff](\uDB40[\uDC00-\uDFFF])?", "", text 
)
print(result)  # 輸出:振り仮名付き: 

2. 異體字篩選

# 保留標準中文,過濾日式漢字
def filter_variants(text):jp_kanji = r"[亜囲亙悪圧]"return re.sub(rf"({jp_kanji}|[\u3040-\u30ff])","",text)text = "日本漢字:亜 圧 vs 中文漢字:亞 壓"
print(filter_variants(text))  # 輸出:日本漢字:  vs 中文漢字:亞 壓

六、可視化調試方案

1. 匹配高亮顯示


def debug_cjk(text):highlighted = re.sub(r"([\u4e00-\u9fff\u3040-\u30ff\uac00-\ud7a3])",r"\033[31m\1\033[0m",text)print(highlighted)debug_cjk("調試示例:????? こんにちは")
# 終端顯示:調試示例:[紅色]????? [紅色]こんにちは 

七、常見問題排查

1. 遺漏字符問題

  • 現象:部分韓文字符未被過濾
  • 解決方案:擴展韓文范圍至\uac00-\ud7a3(現代韓文) + \u1100-\u11ff(古韓文)

2. 性能瓶頸分析

# 測試正則表達式性能 
import timeit 
setup = '''
import re 
text = "測試" * 100000 
pattern = re.compile(r'[\u4e00-\u9fff]')
'''
print(timeit.timeit('pattern.sub("", text)', setup, number=100))
# 輸出:0.87秒(1億次替換/分鐘)

通過這種系統化的過濾方案,可應對以下場景:

  • 🔍 國際化網站的敏感詞過濾
  • 📊 多語言混合數據的清洗
  • 🔒 用戶輸入的安全審查
  • 📚 古籍文獻的數字化處理

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70268.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70268.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70268.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于WOA鯨魚優化的WSN網絡最優節點部署算法matlab仿真

目錄 1.程序功能描述 2.測試軟件版本以及運行結果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 鯨魚優化算法&#xff08;WOA&#xff09;是一種模擬座頭鯨捕食行為的元啟發式優化算法。其主要原理基于座頭鯨獨特的 “氣泡網” 捕食策略&#xff0c;通過數學模…

【數據分析】3 數據分析成長之路

職業發展路徑&#xff1a; 向上發展&#xff08;技術方向&#xff09;&#xff1a;可以詳細說明成為數據科學家或專家所需的具體技能和步驟&#xff0c;包括學習的算法、工具等。向下發展&#xff08;業務方向&#xff09;&#xff1a;可以探討結合業務知識的具體領域&#xff…

excel導入Mysql中時間格式異常

問題描述&#xff1a; 當使用xls/xlsx/csv導入mysql中&#xff0c;如果列是時間類型比如excel表中顯示2024/02/20 09:18:00&#xff0c;導入后時間可能就會變成1900-01-01 09:18:00這樣。 問題原因&#xff1a; 這是由于excel表中和數據庫中的時間類型不匹配導致。 問題解決…

async checkpointing

Reducing Model Checkpointing Times by Over 10x with PyTorch Distributed Asynchronous Checkpointing | PyTorch 最初來源&#xff1a;IBM Research 核心思想&#xff1a;GPU->CPU&#xff0c;用的是blocking&#xff1b;CPU->Disk&#xff0c;用的是異步不阻塞訓練…

Nginx穩定版最新1.26.2源碼包安裝【保姆級教學】

Nginx安裝及配置 開源Nginx官網地址(https://nginx.org) Nginx源碼包下載地址(https://nginx.org/en/download.html) Mainline version 主線版本 Stable version 穩定版本 Legacy versions 陳舊版本 下載Nginx源碼文件 curl -O https://nginx.org/download/nginx-1.26.2.t…

在ubuntu上用Python的openpyxl模塊操作Excel的案例

文章目錄 安裝模塊讀取Excel數據庫取數匹配數據和更新Excel數據 在Ubuntu系統的環境下基本職能借助Python的openpyxl模塊實現對Excel數據的操作。 安裝模塊 本次需要用到的模塊需要提前安裝(如果沒有的話) pip3 install openpyxl pip3 install pymysql在操作前&#xff0c;需…

GeoHD - 一種用于智慧城市熱點探測的Python工具箱

GeoHD - 一種用于智慧城市熱點探測的Python工具箱 詳細原理請參考&#xff1a;Yan, Y., Quan, W., Wang, H., 2024. A data‐driven adaptive geospatial hotspot detection approach in smart cities. Trans. GIS tgis.13137. 代碼下載&#xff1a;下載 1. 簡介 在城市數據…

16 中介者(Mediator)模式

中介者模式 1.1 分類 &#xff08;對象&#xff09;行為型 1.2 提出問題 實現一個機場的起飛管理系統&#xff0c;如果由駕駛員們討論誰先飛&#xff0c;后果可能是災難性的。 1.3 解決方案 用一個中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用&a…

最薄的機身,游最深的海

經濟全球化的潮流&#xff0c;勢不可擋。 “技術、通訊和全球化&#xff0c;正在消除傳統的地理和經濟邊界&#xff0c;使競爭環境趨于平等。”《世界是平的》作者托馬斯弗里德曼預言的"扁平化競爭"正加速演進。 在高端智能手機戰場&#xff0c;一場由中國企業主導…

【HarmonyOS Next】鴻蒙監聽手機按鍵

【HarmonyOS Next】鴻蒙監聽手機按鍵 一、前言 應用開發中我們會遇到監聽用戶實體按鍵&#xff0c;或者擴展按鍵的需求。亦或者是在某些場景下&#xff0c;禁止用戶按下某些按鍵的業務需求。 這兩種需求&#xff0c;鴻蒙都提供了對應的監聽事件進行處理。 onKeyEvent 默認的…

IC設計版圖中GDS2文件格式詳解

版圖中GDS2文件格式詳解 目錄 什么是GDS2文件&#xff1f;GDS2文件的歷史與發展GDS2文件的結構解析GDS2文件的核心元素GDS2 vs. OASIS: 核心差異如何生成與查看GDS2文件&#xff1f;GDS2文件的局限性應用場景總結 什么是GDS2文件&#xff1f; GDS2&#xff08;Graphic Data …

KMP算法:字符串匹配的智慧跳躍

文章目錄 起因&#xff1a;暴力法的致命缺陷暴力搜索的局限性 KMP核心思想&#xff1a;避免重復理解前綴表&#xff08;PMT&#xff09;不匹配時的回退機制代碼&#xff1a;高效字符串匹配補充&#xff1a;next表和PMT表 暴力法 vs KMP總結&#xff1a;KMP 是如何改變游戲規則的…

上位機知識篇---setuptools

文章目錄 前言簡介一、核心功能1.依賴管理自動安裝依賴版本約束額外依賴組命令行工具插件系統 2.開發模式安裝3.資源文件管理4.Egg 分發&#xff08;已逐漸被 Wheel 取代&#xff09;5.命名空間包 二、基礎用法1. 項目結構示例2. 配置文件 setup.cfg3. setup.py 最小化示例&…

藍橋杯學習大綱

&#xff08;致酷德與熱愛算法、編程的小伙伴們&#xff09; 在查閱了相當多的資料后&#xff0c;發現沒有那篇博客、文章很符合我們備戰藍橋杯的學習路徑。所以&#xff0c;干脆自己整理一篇&#xff0c;歡迎大家補充&#xff01; 一、藍橋必備高頻考點 我們以此為重點學習…

Go 錯誤處理與調試:面向對象的入門教程

Go 錯誤處理與調試&#xff1a;面向對象的入門教程 Go 語言因其簡潔、高效和易于并發編程的特性&#xff0c;逐漸成為后端開發的主流語言之一。錯誤處理是任何編程語言中非常重要的一部分&#xff0c;尤其是在 Go 語言中&#xff0c;Go 提供了一種不同于傳統異常處理機制的錯誤…

Linux探秘坊-------4.進度條小程序

1.緩沖區 #include <stdio.h> int main() {printf("hello bite!");sleep(2);return 0; }執行此代碼后&#xff0c;會 先停頓兩秒&#xff0c;再打印出hello bite&#xff0c;但是明明打印在sleep前面&#xff0c;為什么會后打印呢&#xff1f; 因為&#xff…

基于Python的Diango旅游數據分析推薦系統設計與實現+畢業論文(15000字)

基于Python的Diango旅游數據分析推薦系系統設計與實現畢業論文指導搭建視頻&#xff0c;帶爬蟲 配套論文1w5字 可定制到某個省份&#xff0c;加40 基于用戶的協同過濾算法 有后臺管理 2w多數據集 可配套指導搭建視頻&#xff0c;加20 旅游數據分析推薦系統采用了Python語…

Scrapy:DownloaderAwarePriorityQueue隊列設計詳解

DownloaderAwarePriorityQueue 學習筆記 1. 簡介 DownloaderAwarePriorityQueue 是 Scrapy 中一個高級的優先級隊列實現&#xff0c;它不僅考慮請求的優先級&#xff0c;還會考慮下載器的負載情況。這個隊列為每個域名&#xff08;slot&#xff09;維護獨立的優先級隊列&#…

dify-AI 私有部署可修改前端頁面

dify文檔 官方文檔&#xff1a;歡迎使用 Dify | Dify 源碼&#xff1a;https://github.com/langgenius/dify.git 安裝docker 官網&#xff1a;https://www.docker.com/ 部署服務到docker cd dify cd docker cp .env.example .env docker compose up -d查看效果 http://localh…

PHP基礎部分

但凡是和輸入、寫入相關的一定要預防別人植入惡意代碼! HTML部分 語句格式 <br> <hr> 分割符 <p>插入一行 按住shift 輸入! 然后按回車可快速輸入html代碼(VsCode需要先安裝live server插件) html:<h1>標題 數字越大越往后</h1> <p…