Python去掉括号及其内容(re模块)

本文介绍了如何使用Python处理包含全角括号的字符串,通过Unicode编码转换和正则表达式匹配,实现对半角和全角括号及其内容的删除。

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

在字符串中识别 大中小3种括号括号并删除括号及其中的内容

1、若括号为半角括号

常见的英文(半角)符号如( ) ,直接用正则匹配即可

import re
str="你(你)在[在]干嘛{干嘛}"
result = re.sub(u"\\(.*?\\)|\\{.*?}|\\[.*?]", "", str)
print(result)

对于是全角括号的,我没有按照2的操作,只是将1里面的半角括号,改为全角括号就可以了

2、若括号为全角括号

全角字符(中文括号、标点),直接用正则匹配会存在问题:因为编码通常为为utf8,若直接匹配,中文括号的3字节编码会和一些中文的字节编码重复,产生意想不到的结果;用decode将正则的字符串转为unicode编码,则可避免产生错误结果,但也无法直接用正则匹配到。

import sys
import re

str = u"你(你)在[在]干{干}嘛【嘛】"
result = re.sub(u"\\(.*?)|\\{.*?}|\\[.*?]|\\【.*?】", "", str.encode('utf-8').decode())
print(result)

本质上是将正则的pattern字符和目标的编码对应, 所以将正则的字符串也用unicode表示就可以

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值