对使用正则表达式精确匹配3个字母和3个数字感到困惑吗

2024-05-19 03:04:45 发布

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

我是一个Python新手,正在尝试匹配句子中正好有3个字母(小写或大写)后跟正好3个数字的单词。这是我的密码:

def regex():
    pattern = r'^[a-zA-Z]{3}\d{3}$'
    found = re.search(pattern, "My word is bla123")
    print(found)

问题是^。如果我删除它,bla123是匹配的,但是blaa123也是匹配的。如果我添加^来设置单词绑定,bla123将不匹配。我在这里和其他地方的所有研究都得出了相同的模式,从^开始。一些建议是使用\b作为前缀和后缀,但这对我也不起作用。你知道吗

请帮忙。我肯定有些东西我一次又一次地忽略了。谢谢!你知道吗


Tags: re密码def字母数字单词regex句子
1条回答
网友
1楼 · 发布于 2024-05-19 03:04:45

您可以删除^$检查,添加单词边界(\b):

>>> pattern = r'\b[a-zA-Z]{3}\d{3}\b'
>>> re.findall(pattern, "My word is bla123")
['bla123']
>>> re.findall(pattern, "My word345 is bla123")
['bla123']
>>> re.findall(pattern, "My word345 and bla56 is bla123 and abc343")
['bla123', 'abc343']

相关问题 更多 >

    热门问题