2 回答

TA貢獻(xiàn)1853條經(jīng)驗 獲得超6個贊
看來實現(xiàn)此目的的最佳方法是使用正則表達(dá)式:
這是一個有效的字符串:
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"
這是檢查字符串是否有效的正則表達(dá)式:
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"
這是函數(shù):
>>> check_valid(invalid)
'Invalid'
>>> check_valid(invalid2)
'Invalid'
>>> check_valid(invalid3)
'Invalid'
>>> check_valid(valid)
'Valid'

TA貢獻(xiàn)1877條經(jīng)驗 獲得超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:也許不是最有效的,但它會檢查是否有效。請注意,在所有錯誤的情況下,您始終至少會遇到以下兩個之一:“,,”或“;”。
添加回答
舉報