识别 Python 中仅包含数字和“/”符号的字符串
Recognize a string containing only digits and "/" symbols in Python
我有一个短字符串,需要一种方法来识别该字符串中是否只有数字 and/or“/”符号。如果字符串中有字母或其他一些符号 - 这是不行的。只允许使用数字和“/”。
例如:
a = '123456' - 绿灯
b = '123//6' - 绿灯
c = '1m3456' - 不行
d = '1/80o0' - 不行
只需使用set
算术
def onlyallowed(text,allowed="/0123456789"):
return set(text).issubset(allowed)
print(onlyallowed("123456")) # True
print(onlyallowed("123//6")) # True
print(onlyallowed("1m3456")) # False
print(onlyallowed("1/80o0")) # False
解释:将文本转换为(字符的)集合并检查是否所有这些 character
都在允许范围内。可选 allowed
可用于部署另一组允许的字符,例如仅允许 0
s 和 1
s:
print(onlyallowed("01011",allowed="01")) # True
如果您希望处理非常长的文本,并且在开头附近有不允许的字符,您可以选择使用 all
结合理解,如下所示
def onlyallowed(text,allowed="/0123456789"):
return all(i in allowed for i in text)
all
行为是在遇到非真值后立即 return False
(在这种情况下 False
,因为我做成员测试)
我相信这就是您要找的:
strings = ['123456', '123//6', '1m3456', '1/80o0']
print([string.replace('/', '').isdigit() for string in strings])
简单地删除任何 / 字符(如果存在)并检查它是否全是数字 对我来说似乎更具可读性,也更符合您用英语描述它的方式:)
希望这对您有所帮助。干杯!
import re
def recognize(self):
if re.search(r"[a-b]", self) is not None:
print("Red Light")
elif re.search(r"[0-9]|/", self) is not None:
print("Green Light")
recognize(your_string)
如果 recognize()
函数在字符串中找到一个字母,输出将是“红灯”,否则如果找到数字或“/”,输出将是“绿灯” ".
我有一个短字符串,需要一种方法来识别该字符串中是否只有数字 and/or“/”符号。如果字符串中有字母或其他一些符号 - 这是不行的。只允许使用数字和“/”。
例如:
a = '123456' - 绿灯
b = '123//6' - 绿灯
c = '1m3456' - 不行
d = '1/80o0' - 不行
只需使用set
算术
def onlyallowed(text,allowed="/0123456789"):
return set(text).issubset(allowed)
print(onlyallowed("123456")) # True
print(onlyallowed("123//6")) # True
print(onlyallowed("1m3456")) # False
print(onlyallowed("1/80o0")) # False
解释:将文本转换为(字符的)集合并检查是否所有这些 character
都在允许范围内。可选 allowed
可用于部署另一组允许的字符,例如仅允许 0
s 和 1
s:
print(onlyallowed("01011",allowed="01")) # True
如果您希望处理非常长的文本,并且在开头附近有不允许的字符,您可以选择使用 all
结合理解,如下所示
def onlyallowed(text,allowed="/0123456789"):
return all(i in allowed for i in text)
all
行为是在遇到非真值后立即 return False
(在这种情况下 False
,因为我做成员测试)
我相信这就是您要找的:
strings = ['123456', '123//6', '1m3456', '1/80o0']
print([string.replace('/', '').isdigit() for string in strings])
简单地删除任何 / 字符(如果存在)并检查它是否全是数字 对我来说似乎更具可读性,也更符合您用英语描述它的方式:)
希望这对您有所帮助。干杯!
import re
def recognize(self):
if re.search(r"[a-b]", self) is not None:
print("Red Light")
elif re.search(r"[0-9]|/", self) is not None:
print("Green Light")
recognize(your_string)
如果 recognize()
函数在字符串中找到一个字母,输出将是“红灯”,否则如果找到数字或“/”,输出将是“绿灯” ".