使用正则表达式删除单个标点符号

时间:2019-07-13 07:22:01

标签: regex python-3.x string

我的标点符号连接了这个词,却没有连接这个词。我想删除一些我认为不必要的标点符号

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

2 个答案:

答案 0 :(得分: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 sedang bermain @brenx main #gantipresiden dan makan-makan?

答案 1 :(得分:0)

尝试匹配# ... #,然后在没有结束#标记的情况下进行替换:

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?