【问题标题】:I want to remove multiple characters from a string input by user [duplicate]我想从用户输入的字符串中删除多个字符[重复]
【发布时间】:2016-11-13 22:48:32
【问题描述】:

我试图向用户询问他们的电话号码,许多人输入他们的电话号码,例如“123-456-7890”、“(123)456-7890”。

我想让程序从输入中去掉“()-”,这样当我将数字打印回用户时,它会显示为 1234567980 而没有所有额外的字符。

到目前为止,我只能通过这样做从字符串中删除第一个括号:

number = str(input("Enter phone number: "))
print(number.strip('('))

【问题讨论】:

  • 是什么阻止你去掉右括号、破折号和空格?此外,在这里用正则表达式替换可能会更好。
  • 查看字符串的 .replace() 函数

标签: python string python-3.x strip


【解决方案1】:

字符串是可迭代的,因此可以使用列表推导有效地解决您的问题。

digits = '0123456789'
phone_number = ''.join([x for x in input("Enter phone number: ") if x in digits])

这种方法的好处是只有数字才能包含在最终结果中。而对于替换方法,您必须指定每个排除项。

【讨论】:

  • 感谢您的信息。按建议编辑。
【解决方案2】:

也许不是最优雅的方式,但是:

print(number.replace('(', '').replace(')', '').replace('-', ''))

【讨论】:

  • 哦,是的,就像我需要的那样工作,非常感谢!
猜你喜欢
  • 2012-05-06
  • 2020-11-12
  • 2022-11-14
  • 2016-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-30
  • 2012-04-08
相关资源
最近更新 更多