gpt4 book ai didi

python - 如何使用 re.sub() 只保留字母 a-z、A-Z、数字 0-9 和空格而不保留数字?

转载 作者:行者123 更新时间:2023-12-04 03:36:17 31 4
gpt4 key购买 nike

message = 'Hello(/ how{can} wan\';t //opperate+32.5 u&# kj|'

我只需要保留字母 a-z、A-Z、数字 0-9 和空格,所以我必须得到 'Hello how can want opperate 325 u kj' 但是当我使用 re .sub('[^\w\d]+', ' ', message)re.sub('[^A-Za-z0-9]+', ' ', message) 我收到 'Hello how can want opperate 32 5 u kj'我怎样才能得到 325 这个数字?

最佳答案

你可以使用

re.sub(r'(\d+(?:[,.]\d+)+)|[\W_]+', lambda x: x.group(1) if x.group(1) else ' ', message).strip()

参见 Python demo online .

详细信息:

  • (\d+(?:[,.]\d+)+) - 捕获第 1 组:一个或多个数字后跟一个或多个 , 和一位或多位数字
  • | - 或者
  • [\W_]+ - 任何一个或多个非字母数字字符。

如果第 1 组匹配,则替换为第 1 组值,否则,替换为空格。如果在字符串的开头/结尾有一个匹配项,则可能会留下杂散空间,因此,使用 strip()

关于python - 如何使用 re.sub() 只保留字母 a-z、A-Z、数字 0-9 和空格而不保留数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66823981/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com