gpt4 book ai didi

python - 使用基于正则表达式的模式匹配验证用户输入的逗号分隔坐标

转载 作者:太空狗 更新时间:2023-10-30 02:26:04 24 4
gpt4 key购买 nike

我遇到一个问题,用户可以在括号内输入任意数量的 (x,y) 坐标。例如,用户 A 可以输入 (1,1) (1,2) (1,3)

User B : (1,1)
User C : (3,2) (5,5) (6,1)

我想要一个通用模式匹配来检查用户输入的输入是否有效。只有符合上述格式的输入才有效。即 (x,y)\s(a,b)\s(c,d)。我是正则表达式匹配的新手,我试过 (\\(\d,\d\\)\s){1,}。这似乎不起作用。此外,在最后一个坐标条目之后不应有空格。有人可以帮助我如何得到这个吗?

提前致谢。

最佳答案

如果你想验证整个输入,我建议使用 re.match .

>>> pattern = re.compile('(\(\d+,\d+\)\s*)+$')    
>>> def isValid(string):
... return bool(pattern.match(string.strip()))
...
>>> string = '(1,1) (1,2) (1,3)'
>>> isValid(string)
True

要么整个字符串匹配,要么什么都不匹配。默认情况下,re.match 从头开始​​,如果字符串有效则返回一个match 对象,否则返回Nonebool 结果将用于评估此表达式的真实性。

请注意,空白字符已成为可选字符以简化表达式。如果你想要严格匹配,我建议看DYZ' answer .


正则表达式详细信息

(        # capturing group 
\( # opening paren
\d+ # 1 or more digits
, # comma
\d+
\) # closing paren
\s* # 0 or more whitespace chars
)+ # specify repeat 1 or more times
$ # end of string

关于python - 使用基于正则表达式的模式匹配验证用户输入的逗号分隔坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46354303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com