python:regex匹配字符串和仅字符串

2024-04-24 11:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python创建一个小的文本限制程序。基本上,用户输入文本,一些过滤器(a代表字母,n代表数字,等等)。用户可以组合过滤器(字母数字的a和n,等等),但我偶然发现:

if re.match("[a-zA-Z]", textToRestrict):
    return True
else:
    return False

这就是事情分崩离析的地方。假设只使用字母作为过滤器,程序将只接受字符串,例如dance。但是,if语句仍然返回true,如果textToRestricdance1234(不正确),而{}将返回{}(正确)。在

相反,如果我通过[0-9]测试数字,它仍然会返回true,即使它包含字母字符,前提是这些字符不是第一个。在

我如何使用regex只匹配某个类型,并且以这样的方式添加另一个类型(如string+typedigit)允许两种类型都返回true?在

更新:这是我用于多个过滤器的方法:

^{pr2}$

arguments是用户输入的参数。if语句检查其中的内容,并假定向regex字符串添加更多模式。在


Tags: 字符串用户文本程序true过滤器类型return
1条回答
网友
1楼 · 发布于 2024-04-24 11:08:49

在regex的两端添加anchors,再加上一个限定符(+如果您想排除空字符串;*如果您想允许空字符串)。现在,您只需要检查第一个字符(单数)是否是字母(即匹配[a-zA-Z])。在

你想要的是:

re.match("^[a-zA-Z]+$", textToRestrict)

(或者,如果过滤器真的这么简单,可以考虑使用str.isalpha之类的字符串方法,as SirParselot suggests in a comment。)

相关问题 更多 >