2 回答
TA贡献1853条经验 获得超6个赞
看来实现此目的的最佳方法是使用正则表达式:
这是一个有效的字符串:
valid = "a, b, c, foo, bar, dog, cat"
以下是各种无效字符串:
## invalid1 is invalid as it contains multiple , i.e. `,,` and :
invalid1 = "a,, b, c,,,,d, e,,; f, g"
## invalid2 is invalid as it contains `, ,`
invalid2 = "a b, ,c, d, e"
## invalid3 is invalid as it contains spaces between strings
invalid3 = "a, b, d, elephant, f g"
这是检查字符串是否有效的正则表达式:
import re
pattern = re.compile(r"^(\w+)(,\s*\w+)*$")
def check_valid(input_string):
if pattern.match(input_string) == None:
return "Invalid"
else:
return "Valid"
这是函数:
>>> check_valid(invalid)
'Invalid'
>>> check_valid(invalid2)
'Invalid'
>>> check_valid(invalid3)
'Invalid'
>>> check_valid(valid)
'Valid'
TA贡献1877条经验 获得超6个赞
这里你有一些方法来检查它是否有效:
def is_valid(comma_sep_str):
if ';' in comma_sep_str or ',,' in comma_sep_str:
return 'Not valid'
else:
return 'Valid'
myString1 = "a,, b, c,,,,d, e,,; f, g"
myString2 = "a, b, c, d, e"
print(is_valid(myString1))
print(is_valid(myString2))
PS:也许不是最有效的,但它会检查是否有效。请注意,在所有错误的情况下,您始终至少会遇到以下两个之一:“,,”或“;”。
添加回答
举报