Python正则表达式:尝试创建模式

2024-06-03 12:20:47 发布

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

我尽了我最大的努力检查互联网和堆栈的信息,但我有麻烦我的头围绕regex为我的实用工具。你知道吗

我有一个字符串遵循以下模式:

[any a-z,1-9]_reel[0-9]*2_scn[0-9]*4_shot[0-9]*4

例如:

kim_reel05_scn0101_shot0770

n74_reel05_scn0001_shot0700

ninehundred_reel05_scn0001_shot0700

我需要检查这些例子,看看它是否遵循项目卷#####################scn#########! 我不知道如何写这个表达,因为我真的很难理解如何使用特殊字符。你知道吗

有人想帮我吗?你知道吗


Tags: 字符串信息堆栈模式any互联网实用工具regex
2条回答

您可以使用重新匹配测试字符串是否与您的搜索模式匹配,如果不匹配,则返回None。你知道吗

import re

test = ['kim_reel05_scn0101_shot0770',
        'n74_reel05_scn0001_shot0700',
        'ninehundred_reel05_scn0001_shot0700',
        'proj_reel05_scn0001_shot0700',
        'n74_reel05_scn0001_shot0700',
        'ninehundred_reel05_scn0001_shot0700']


valid = re.compile(r'\bproj_reel[\d]{2}_scn[\d]{4}_shot[\d]{4}\b')

for t in test:
    if re.match(valid, t):
        #proceed
        print('Valid:', t)
    else:
        print('Invalid:', t)

输出:

Invalid: kim_reel05_scn0101_shot0770
Invalid: n74_reel05_scn0001_shot0700
Invalid: ninehundred_reel05_scn0001_shot0700
Valid: proj_reel05_scn0001_shot0700
Invalid: n74_reel05_scn0001_shot0700
Invalid: ninehundred_reel05_scn0001_shot0700
^proj_reel[0-9]{2}_scn[0-9]{4}_shot[0-9]{4}$

你可以试试这个。你知道吗别忘了设置gm旗帜。参见演示。你知道吗

http://regex101.com/r/nA6hN9/35

相关问题 更多 >