我试图找出是否有一种简单的方法使用 for 循环和列表来检查用户输入字符串是否包含字母或字母和撇号,但不包含数字或字母和数字(字母和数字和撇号) ?
我尝试了很多方法还是无法解决?我将不胜感激任何线索!谢谢。
最佳答案
您似乎只需要包含字母(可能还加上撇号)的字符串,但不需要数字,尽管您已经更详细地表达了要求。这可以在没有正则表达式的情况下完成,如下所示:
not any(c for c in my_str if c not in string.ascii_letters + "'")
请参阅以下示例代码:
>>> test = ['abcde', "abcde'", 'abcde123', "abcde'123", 'abcde.']
>>> for s in test:
... print(s, '-->', not any(c for c in s if c not in string.ascii_letters + "'"))
...
abcde --> True
abcde' --> True
abcde123 --> False
abcde'123 --> False
abcde. --> False
希望很明显,仅执行一次 string.ascii_letters + "'"
会更有效,并且您必须首先导入 string
。这只是一个例子。
关于python - 如何检查字符串是否包含字母或字母和撇号但不包含数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790790/