如何用Python中的空格替换文本中的特殊字符?

Dee*_*pak 5 python regex python-3.x

问题陈述: 如果发现有字母的特殊字符,则将其替换为一个空格。并且,如果发现它带有数字,则只需忽略即可。

实际场景:

  1. $45
  2. 4.5 inches
  3. Task.This is good.
  4. Hello, How $are you. This is good.

预期场景:

  1. $45
  2. 4.5 inches
  3. Task This is good
  4. Hello How are you This is good

我尝试编写一个正则表达式来找出遵循此模式的文本,但不确定如何用空格替换该文本中的特殊字符。

在此处输入图片说明

对于例如在上述的图像,期望的输出将是'ddddd dfhghg''222 d'

这种情况可以通过 re.sub(pattern, replacement, input) 处理吗?如果是,请告诉如何:)

mrz*_*asa 3

您可以使用带有否定环视的字符集:

(?<!\d)([.,$])(?!\d) 
Run Code Online (Sandbox Code Playgroud)

将所有应替换的字符放在括号内:[.,$]

演示

解释:

  • (?<!\d)负向后查找 - 确保匹配字符之前没有数字
  • (?!\d)负向先行 - 确保匹配字符后面没有数字
  • [...]包含您要替换的所有特殊字符的字符集