gpt4 book ai didi

python - re.match 在 python 2.7 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:17:32 25 4
gpt4 key购买 nike

keyword = "*"
keyphrase = "*"
while not(re.match('[a-z ]',keyword)):
keyword = raw_input("enter a keyword:-").lower()
while not(re.match('[a-z ]',keyphrase)):
keyphrase = raw_input("enter a key phrase:-").lower()

上面的代码是我正在制作的程序的开始;但是我希望用户输入的关键字和关键短语(它们是 raw_inputs)只能是字母表或空格的字符,因此它们不能包含其他字符,例如数字或符号。

上面的代码不能完全工作例如,如果用户输入“1234”作为关键字,循环运行并且他们必须再次输入关键字;这同样适用于“1234abcd”,但是如果他们输入“abcd1234”,即使它包含数字,循环也不会运行。

最佳答案

re.match 从头开始​​匹配,但如果直到文本末尾才匹配,也会返回匹配。因此,在您的示例输入 abcd1234 中,您的正则表达式匹配 abcd 部分。因此您的循环停止(找到匹配项)。

更改正则表达式,使其匹配到文本末尾,您的问题将得到解决。试试下面的代码:

keyword = "*"
keyphrase = "*"
while not(re.match('[a-z ]*$',keyword)):
keyword = raw_input("enter a keyword:-").lower()
while not(re.match('[a-z ]*$',keyphrase)):
keyphrase = raw_input("enter a key phrase:-").lower()

请注意 $ 表示正则表达式必须匹配到字符串末尾。 * 表示可以匹配任意次数的 [a-z ]

关于python - re.match 在 python 2.7 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34433959/

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