【问题标题】:Delete single punctuation using regex使用正则表达式删除单个标点符号
【发布时间】:2019-07-13 07:22:01
【问题描述】:

我有连接单词和不连接单词的标点符号。我想删除一些我认为没有必要的标点符号

sentence = "@alham sedang bermain @brenx main #gantipresiden dan makan-makan? #"

我想要这样的句子:

@alham sedang bermain @brenx main #gantipresiden dan makan-makan?

你可以看到我的代码: https://regex101.com/r/ByqWrH/1

【问题讨论】:

  • 您能否将您尝试的模式添加到问题中,而不仅仅是链接?

标签: regex python-3.x string


【解决方案1】:

如果你想删除#前后没有非空白字符\S,你可以使用lookarounds

(?<!\S)#(?!\S)

Regex demo | Python demo

例如:

import re

sentence = "@alham sedang bermain @brenx main #gantipresiden dan makan-makan? #"
regex = r"(?<!\S)#(?!\S)"
sentence = re.sub(regex, "", sentence)
print(sentence)

结果

@alham Shengg bermain @brenx main #gantipresiden dan makan-makan?

【讨论】:

    【解决方案2】:

    尝试匹配# ... #,然后替换没有结束#标签:

    sentence = "@alham sedang bermain @brenx main #gantipresiden dan makan-makan? #"
    output = re.sub(r'#([^#]+?)[ ]*#', '#\\1', sentence)
    print(output)
    

    打印出来:

    @alham sedang bermain @brenx main #gantipresiden dan makan-makan?
    

    【讨论】:

      猜你喜欢
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多