python - 如何使用正则表达式将所有重复的标点符号替换为单个标点符号?

标签 python regex python-3.x

我想更改以单个字符替换文本中所有重复的(2+)标点字符:

text = "-alham sedang bermain-main dan makan-makan???? @@alhamsya"

result = "-alham sedang bermain-main dan makan-makan? @alhamsya"


这是我的代码(和here it is on regex reference tester):

def duplicate_punctuation(text): 
     pattern_regex = "([?@])\\1+" 
     regex_req = re.sub(pattern_regex, "\\1", text) 
     return regex_req

最佳答案

您的表情似乎运作良好:

import re

regex = r"([?@])\1+"

test_str = "-alham sedang bermain-main dan makan-makan???? @@alhamsya"
subst = "\\1"

result = re.sub(regex, subst, test_str, 0)

if result:
    print (result)

关于python - 如何使用正则表达式将所有重复的标点符号替换为单个标点符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56961401/

相关文章:

python - 如何使用 python 和 cx_Oracle 更新 oracle 表中的列并在每次记录更新后提交

python - Tensorflow:保存评估指标

android - 在 iOS 的 Browserstack 中查找元素

python - 拆分多行列并添加数字列以指示拆分的每个值

c# - 用于验证文件名的正则表达式

python - 在 python 中处理时创建图像文件的副本

java - 正则表达式获取直到一个字符的值

c# - EOL 特殊字符不匹配

Python3 pathlib 单行代码用于检查 Path 是否至少有一个特定扩展名的文件

python-3.x - 我应该如何使用 mode.predict_generator 来评估混淆矩阵中的模型性能?