【发布时间】:2020-09-05 23:40:01
【问题描述】:
我正在尝试检查 python 中逗号分隔字符串的有效性。也就是说,字符串可能包含使用多个逗号的错误。
这是一个有效的字符串:
foo = "a, b, c, d, e"
这是一个有效的字符串,因为它是逗号分隔的;只有一个逗号,而不是几个或只有空格。
这是一个无效的字符串:
invalid = "a,, b, c,,,,d, e,,; f, g"
无效字符串是无效的,因为 (1) 它使用了多个逗号,并且 (2) 它还使用了分号 ;。
检查字符串是否有效的最有效方法是什么?
我的第一次尝试是尝试类似:
def check_valid_string(input_string):
if ",," in input_string or ";" in input_string:
return "Not valid" ## or False
else:
return "Valid" ## or True
但是,尚不清楚这是否会捕获所有可能的无效字符串。我也不清楚这种方法是计算效率最高的(即快速)。
【问题讨论】:
-
请发布给您带来麻烦的代码。在您发帖寻求帮助之前,我们希望进行一次有效的尝试。 “什么是最好的方法?”通常是围绕“给我代码/设计来解决这个问题”的包装——这与 Stack Overflow 无关。
-
@Prune 添加了带有编辑的代码,并解释了为什么这让我停下来。谢谢
-
你的代码不能捕捉所有情况,除非你保证连续的逗号也是连续的。否则,只需
a, ,c就会使您的算法跳闸。我们需要您的有效字符串的规范,而不仅仅是两个示例。其他标点符号呢? 缺少逗号怎么办,例如a b? -
@Prune 你说得对,缺少逗号或
, ,之类的情况也是无效的。我将尝试在上面的问题中对此进行编辑。 -
那么这可能是一个重复的问题,尽管我需要更好地理解这些答案:stackoverflow.com/questions/1396084/…