汉字语料正则化

这篇博客介绍了如何使用Python的正则表达式对汉字语料进行处理,包括编译正则表达式、替换非汉字字符等操作。通过示例展示了正则表达式的基本符号和用法,如`^`、`$`、`.`、`[]`、`*`、`+`、`?`、`{n}`、`{n,}`、`{n, m}`、`|`等,并解释了如何处理字符串中的特殊字符和转义序列。" 117666569,10942890,深入理解双向链表,"['数据结构', '链表', '双链表', '数据结构实现']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import re
from string import digits, punctuation
rule = re.compile(r’[^a-zA-Z.,;《》?!“”‘’@#¥%…&×()——+【】{};;●,。&~、|\s::’ + digits + punctuation +’\u4e00-\u9fa5]+’)#匹配只有这些内容的数据
text5= re.sub(rule,’’,text3)#^rule内容,即非以上内容替换为空

rule5 = re.compile(r"[\u4e00-\u9fa5]",re.I)#替换掉非汉字的全部成分,注意在括号内部
text5=rule5.sub(’’,text5)

首先需要系统学习正则化的每一个符号
compile 函数
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
语法格式为:
re.compile(pattern[, flags])
pattern : 一个字符串形式的正则表达式
flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
内含参数flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
re.I 忽略大小写
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
re.M 多行模式
re.S 即为’ . ‘并且包括换行符在内的任意字符(’ . ‘不包括换行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和’ # '后面的注释

正则符号表示
^ 匹配字符串的开头
$ 匹配字符串的末尾。
. 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[…] 用来表示一组字符,单独列出:[amk] 匹配 ‘a’,‘m’或’k’
[^…] 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
re* 匹配0个或多个的表达式。
re+ 匹配1个或多个的表达式。
re? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
re{ n} 匹配n个前面表达式。例如,"o{2}“不能匹配"Bob"中的"o”,但是能匹配"food"中的两个o。
re{ n,} 精确匹配n个前面表达式。例如,"o{2,}“不能匹配"Bob"中的"o”,但能匹配"foooood"中的所有o。"o{1,}“等价于"o+”。"o{0,}“则等价于"o*”。
re{ n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
a| b 匹配a或b
特殊读取符号
Python中字符串前面加上 r 表示原生字符串,
例如,\n 在raw string中,是两个字符,\和n, 而不会转意为换行符。
正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义。这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解。比如,要匹配一个反斜杆本身,你也许要用’\\‘来做为正则表达式的字符串,因为正则表达式要是\,而字符串里,每个反斜杆都要写成\。
你也可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python字符串是 raw 字符串,所以里面的所有字符都不会被转义,比如r’\n’这个字符串就是一个反斜杆加上一字母n,而’\n’我们知道这是个换行符。因此,上面的’\\‘你也可以写成r’\’,这样,应该就好理解很多了。

import re

pattern = re.compile(r’\d+’)
print (re.split(pattern,‘one1two2three3four4’))
输出
#[‘one’, ‘two’, ‘three’, ‘four’, ‘’]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值