0

0

提取纯非拉丁文字内容:用 Python 3 精确筛选阿拉伯文等外语字符

心靈之曲

心靈之曲

发布时间:2025-12-26 14:32:01

|

934人浏览过

|

来源于php中文网

原创

提取纯非拉丁文字内容:用 Python 3 精确筛选阿拉伯文等外语字符

本文介绍如何使用 python 3(配合 `regex` 模块)从混合文本中精准提取仅含非拉丁字母的字符(如阿拉伯文、中文、西里尔文等),跳过所有 ascii/拉丁字符及混排行,支持大文件处理并保留标点与空格。

在处理多语言文本(尤其是包含阿拉伯文、希伯来文、中文、俄文等非拉丁脚本)的大型 .txt 文件时,若目标仅为提取纯非拉丁字符内容(即完全不含英文字母、数字、ASCII 标点的行),Python 内置的 re 模块能力有限——它不支持 Unicode 脚本属性(如 \p{Latin} 或 \P{Latin})。此时需借助功能更强大的 regex 模块(re 的增强替代品)。

✅ 正确做法:匹配“整行均为非拉丁字符”

以下代码将严格筛选出每一行中所有字符均不属于 Latin 脚本的行(包括空格、常见标点及 Common/Inherited 类 Unicode 字符,如引号、括号、连字符等),并写入新文件:

import regex as re

pattern = re.compile(r'^\P{Latin}*$')  # 允许空行;若排除空行,用 r'^\P{Latin}+$'

with open("test_doc.txt", "r", encoding="utf-8") as f:
    lines = (line.rstrip('\n\r') for line in f)  # 安全去尾随换行符
    foreign_only_lines = [line for line in lines if pattern.fullmatch(line)]

with open("test_doc_dest.txt", "w", encoding="utf-8") as out_f:
    out_f.write('\n'.join(foreign_only_lines))
? 关键说明: \P{Latin} 表示“非拉丁字母字符”,涵盖所有 Unicode 中明确标记为非 Latin 脚本的字符(如 Arabic, Cyrillic, Han, Hangul 等),同时保留 Common(如 ,。!?)、Inherited(如重音符号 ◌́)类字符,确保标点与排版完整性。 ^...\$ 锚定整行;* 允许空行(可改为 + 排除空行);fullmatch() 确保整行完全匹配,避免误选混排行。

⚠️ 常见误区与修复

  • ❌ 原始代码中 line.isascii() 是合理起点,但 isascii() 仅判断是否全为 ASCII(U+0000–U+007F),无法识别 UTF-8 编码的阿拉伯文(如 ا),且该方法返回布尔值,不应放在 try 中(无异常抛出);
  • ❌ for line in sourceDoc: 未指定编码,易在含非 ASCII 字符时触发 UnicodeDecodeError(尤其 Windows 默认 cp1252);务必显式声明 encoding="utf-8";
  • ❌ 使用 with open(...) 替代手动 close(),避免因异常导致文件句柄泄漏。

? 进阶需求:提取行内非拉丁子串(而非整行)

若需从混排行中抽取连续的非拉丁字符片段(例如 "Hello اهلاً world 你好" → "اهلاً 你好"),可改用 findall:

飞书多维表格
飞书多维表格

表格形态的AI工作流搭建工具,支持批量化的AI创作与分析任务,接入DeepSeek R1满血版

下载
import regex as re
pattern = re.compile(r'\P{Latin}+')
with open("test_doc.txt", "r", encoding="utf-8") as f, \
     open("test_doc_dest.txt", "w", encoding="utf-8") as out_f:
    for line in f:
        chunks = pattern.findall(line.rstrip('\n\r'))
        if chunks:
            out_f.write(' '.join(chunks) + '\n')

✅ 总结

  • ✅ 优先安装并使用 regex 模块:pip install -U regex;
  • ✅ 用 \P{Latin} 精准否定拉丁脚本,兼顾 Unicode 规范性;
  • ✅ 始终显式指定 encoding="utf-8";
  • ✅ 用 with 语句确保资源安全释放;
  • ✅ 根据需求选择 fullmatch()(纯非拉丁行)或 findall()(行内非拉丁片段)。

此方案高效、鲁棒,适用于 GB 级多语言日志、OCR 输出或语料清洗等真实场景。

立即学习Python免费学习笔记(深入)”;

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

373

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

436

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

803

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

370

2025.07.23

常见的编码方式
常见的编码方式

常见的编码方式有ASCII编码、Unicode编码、UTF-8编码、UTF-16编码、GBK编码等。想了解更多编码方式相关内容,可以阅读本专题下面的文章。

647

2023.10.24

a和A对应的ASCII码数值
a和A对应的ASCII码数值

a的ascii码是65,a的ascii码是97;ascii码表中,一个字母的大小写数值相差32,一般知道大写字母的ascii码数值,其对应的小写字母的ascii码数值就算出来了,是大写字母的ascii码数值“+32”。想了解更多相关的内容,可阅读本专题下面的相关文章。

2249

2024.10.24

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1496

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1170

2023.07.27

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号