gpt4 book ai didi

python - 正则表达式:匹配连续的标点符号并替换为第一个

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:23 24 4
gpt4 key购买 nike

我正在尝试删除一些预定义的连续标点符号并将其替换为第一个。因此:

  1. 美国,-> 美国
  2. 我们-> 美国
  3. 我们! -> 美国
  4. hiiii!!!, -> hiiii!

我尝试了以下代码:

import re
r = re.compile(r'([.,/#!$%^&*;:{}=-_`~()])*\1')
n = r.sub(r'\1', "ews by almalki : Tornado, flood deaths reach 18 in U.s., more storms ahead ")
print(n)

最佳答案

你只需要捕获第一个标点符号并匹配其余的:

([.,/#!$%^&*;:{}=_`~()-])[.,/#!$%^&*;:{}=_`~()-]+

参见 regex demo

请注意,- 必须放在字符类的末尾(或开始),以免创建范围(或者它可以在字符类内转义)。

详细信息:

  • ([.,/#!$%^&*;:{}=_`~()-]) - 使用您定义的标点符号捕获组
  • [.,/#!$%^&*;:{}=_`~()-]+ - 1+个标点符号

Python demo :

import re
r = re.compile(r'([.,/#!$%^&*;:{}=_`~()-])[.,/#!$%^&*;:{}=_`~()-]+')
n = r.sub(r'\1', "ews by almalki : Tornado, flood deaths reach 18 in U.s., more storms ahead ")
print(n)

关于python - 正则表达式:匹配连续的标点符号并替换为第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42063593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com