【问题标题】:How to remove all special char in string by python? [duplicate]如何通过python删除字符串中的所有特殊字符? [复制]
【发布时间】:2016-03-01 09:11:37
【问题描述】:

我想删除所有特殊字符,例如 '|'、'.'或字符串中的“$”。

这是我的代码:

string= '#$#&^&#$@||||123515'
re.sub(r'[^a-zA-Z0-9]', '', string)
print(string)

输出:

#$#&^&#$@||||123515

我知道这个正则表达式意味着删除除数字、a-z 和 A-Z 之外的所有内容。

但它无法删除所有特殊字符。

谁能告诉我为什么?谢谢! :)

【问题讨论】:

  • 我建议删除帖子。
  • 我无法删除它,因为它已被回答...对此深表歉意!
  • 如果其他人同意我的观点,这个问题会在一段时间后被删除。
  • 好的!谢谢你的帮助!

标签: python regex


【解决方案1】:

这应该会有所帮助:

>>> import re
>>> string= '#$#&^&#$@||||123515'
>>> string = re.sub('[\W\_]','',string)
>>> string
'123515' 

【讨论】:

  • [^\w] 不会删除 _,因此这个正则表达式与 OP 正则表达式不同。
  • @Mars Lee,请使用更新后的答案。
  • 反正是同一个正则表达式。唯一的问题是将值分配给变量。
【解决方案2】:

您的代码有问题:您必须将re 的响应存储在string 变量中,例如string = re.sub('[^A-Za-z0-9]+', '', string)。然后print(string)

替代解决方案:即使不使用正则表达式,您也可以实现此目的:

>>> string = '#$#&^&#$@||||123515'
>>> ''.join(e for e in string if e.isalnum())
123515

【讨论】:

猜你喜欢
  • 2012-12-16
  • 2014-02-22
  • 2015-11-11
  • 2012-05-04
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
相关资源
最近更新 更多