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

在字符串中识别 大中小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表示就可以

  • 10
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用re.sub()函数,将括号及其内部的内容替换为空字符串即可。具体代码如下: import re text = "这是一个(带括号)的句子" pattern = r"\(.*?\)" result = re.sub(pattern, "", text) print(result) 输出结果为:"这是一个的句子" ### 回答2: 使用Python正则表达式去掉括号里的内容可以通过使用re.sub()函数来实现。代码示例如下: ```python import re def remove_parentheses(text): pattern = r"\([^()]*\)" result = re.sub(pattern, "", text) return result # 测试示例 text = "这是一个(带有括号内容)的示例文本" result = remove_parentheses(text) print(result) ``` 输出结果为:"这是一个的示例文本" 在这个例子,我们定义了一个正则表达式模式`r"\([^()]*\)"`,它匹配任何位于括号内的内容。然后,我们使用`re.sub()`函数将匹配到的括号里的内容替换成空字符串。最后,返回替换后的文本。 注意:该方法只适用于没有嵌套括号的情况。如果存在嵌套括号,那么这个方法无法正确处理。 ### 回答3: 使用Python正则表达式去掉括号里的内容非常简单。首先,我们可以使用re模块的sub函数来替换匹配到的内容。其次,我们需要编写一个正则表达式模式来匹配括号及其内部的内容。下面是一个示例代码: ```python import re # 原始字符串 text = "这是一个(示例)文本,(包含)括号。" # 定义正则表达式模式 pattern = r"\([^)]*\)" # 匹配括号及其内部的内容 # 使用sub函数替换匹配到的内容为空字符串 result = re.sub(pattern, "", text) # 输出结果 print(result) ``` 运行以上代码,输出结果为: ``` 这是一个文本,括号。 ``` 代码,我们使用r"\([^)]*\)"来定义了一个正则表达式模式。这个模式匹配一个左括号 "(",然后匹配任意数量的非右括号字符,最后匹配一个右括号 ")"。这样,就能匹配到括号及其内部的内容。最后,使用re.sub函数将匹配到的内容替换为空字符串,即去掉括号及其内部的内容

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值