gpt4 book ai didi

python - 正则表达式查找不起作用的空格

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:05 26 4
gpt4 key购买 nike

我试图只让用户输入字母表中的字符,也不包括空格。我使用一个正则表达式来查找字母 (r'[a-zA-Z]+'),使用另一个正则表达式来查找空格 ('\s+') 或 (' +'),然后使用 while 语句来检查它:

# regex rules
alphabet_regex = re.compile(r'[a-zA-Z]+')
space_regex = re.compile('\s+')

key = str(input("1) Insert your keyword generate the number: "))

while not alphabet_regex.match(key) and not space_regex.match(key):
error(keywordError)
key = str(input("1) Insert your keyword to generate the number: "))

字母查找器工作正常,但空格不行。你可以把它放在任何你想要的地方,它会忽略它。

你能帮我吗?谢谢

最佳答案

re.match 从头开始​​匹配,即与使用 re.search(r'^...') 相同。因此,在您的字母匹配中,它从一开始就匹配,并且您可能会得到所需的结果。在空格情况下,如果输入字符串开头没有空格,则它将不匹配。

因此,您可以将 re.search 与正则表达式一起使用:

space_regex = re.compile('\s')

如果您坚持使用re.match:

space_regex = re.compile('.*\s')
<小时/>

另请注意,此处只需匹配单个空格即可,无需使用 + 量词来匹配一个或多个空格。

<小时/>

编辑:

看看您的计划,您可以使用更简单的正则表达式来实现相同的目标 - 仅检查具有正确锚定开始和结束的字母:

^[A-Za-z]+$

关于python - 正则表达式查找不起作用的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571554/

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