首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python正确检查此正则表达式

问如何使用python正确检查此正则表达式
EN

Stack Overflow用户
提问于 2016-12-30 08:28:18
回答 3查看 57关注 0票数 1

我试图检查输入是否符合以下模式:MH12

启动两位数字为MH,然后下两位数字为任意数字,而整串应仅为4位数字。厌倦了regex = r'^[MH]\d{2}.{,4}$'

导入re

代码语言:javascript
复制
def checkingInput():
    while True:
        try:
            inp = raw_input()
            if re.match(r'[MH]\d{2}', inp):
                print "Thanks for your Input:",inp
                break
            else:
                print('Invalid office code, please enter again :')
        except ValueError:
                print('Value error! Please try again!')


checkingInput()

但是上面的程序,即使对于input = MH12,它也显示无效的Office代码。为什么会这样呢?

可能是我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-30 08:30:22

模式[MH]正好匹配一个字母:M或H。

您应该使用MH代替。

整个regex是MH\d\d;在Python语法中是r'MH\d\d'。

票数 4
EN

Stack Overflow用户

发布于 2016-12-30 08:42:50

当您使用MH作为要匹配的字符串的一部分时,必须从表达式中排除[]类,因此有效的类是

代码语言:javascript
复制
import re

def checkingInput():
    while True:
        try:
            inp = raw_input()
            if re.match(r'MH\d{2}', inp):
                print inp
            else:
                print('Invalid office code, please enter again :')
        except ValueError:
                print('Value error! Please try again!')


checkingInput()
票数 1
EN

Stack Overflow用户

发布于 2016-12-30 08:53:49

试一试:

Re.findall(r‘’MH\d{2}‘,s)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41393051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档