python - 如何从用户输入中删除特定字符?
问题描述
我有一个需要用户输入才能运行的代码,但是在对其进行测试之后,我想让它成为白痴证明。为此,我需要让它清除除数字以外的任何情况下的无效字符。
解决方案
我不知道你到底想做什么。
这里有几个选项:
检查特定值
选项 1:您可以使用列表检查特定值
test_input = input('Do you want to continue [y/n] : ')
valid = ['y','yes','n','no']
if test_input.lower() not in valid:
print ('not a valid input')
else:
print ('valid input')
选项 2:您还可以遍历列表并检查它们
if any(test_input.lower() == i for i in valid):
print ('valid input')
else:
print ('not a valid input')
上述两个选项的输出是:
Do you want to continue [y/n] : good
not a valid input
Do you want to continue [y/n] : Good
not a valid input
Do you want to continue [y/n] : yes
valid input
Do you want to continue [y/n] : No
valid input
使用正则表达式检查并使用 re.sub 替换
如果您只需要数字和字母(字母数字)值,则可以检查它们并替换其他所有内容。仅对于数字和字母,请使用'[^0-9a-zA-Z]+'
,如果您还想添加空格,请使用'[^0-9a-zA-Z ]+'
。之后Z
,我添加了一个空格。您可以在[]
.
import re
user_input = input('Enter only alphabets and numbers : ')
cleansed_input = re.sub('[^0-9a-zA-Z]+', '', user_input)
print (cleansed_input)
Enter only alphabets and numbers : 42 days into Stardom!!! is Gr#aT
42daysintoStardomisGraT
Enter only alphabets and numbers : 42 days #Star!!!()32*%53
42 days Star3253
第一个不包括空间,第二个包括空间。
推荐阅读
- node.js - Google Cloud Functions (GCF) works fine locally with Authentication header, but returns 401 when deployed
- swift - 如何在 ContentView 中使用我班级的数据?
- python - 为什么只选择 1 列时,pandas 数据框返回 2 列
- sharepoint - 在填充下一列之前预填充上一列的共享点列表验证
- android - Retrofit2 调用 android 谷歌地图 Api 不起作用
- css - Safari:元素溢出:隐藏被替换
- c - 将 printf 转移到某个变量
- firebase - 如何在颤振应用程序中获取 Firebase 安装身份验证令牌?
- javascript - 依次触发两个函数
- sql-server - SQL Server Graph Tables - 浏览某些节点以找到结束