如何更有效地检查字符串中的多个字符

2024-09-26 18:04:56 发布

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

例如,在:

str = "aaa111bbb222ccc333ddd444eee555fff666"

我想检查应该是字母的字符是否是字母。我可以做到:

等等

但是,对于我的实际代码来说,如果使用if语句的话,那就太长了,我只想使用一个“.isalpha()”并同时检查所有字符


Tags: 代码if字母语句字符strisalphaaaa111bbb222ccc333ddd444eee555fff666
2条回答

问题的一般解决方案是一个称为“模式匹配”的解决方案空间。这种特殊类型的模式匹配似乎是一个正则表达式

虽然您尚未指定模式应该是什么,但根据您的输入,我将假设匹配字符串类似于“三个字母,后跟三个数字,重复任意次数”。该正则表达式是:

import re

pat = re.compile(r'''
(?:                            # open the group so we can repeat it later
  \w{3}                        # three letters
  \d{3}                        # three numbers
)+                             # repeated one or more times
''', re.X)

然后,您可以使用re.match根据此模式检查字符串

s = 'aaa111bbb222ccc333ddd444eee555fff666'
assert re.match(pat, s)

s2 = 'arbitrary non-matching string'
assert not re.match(pat, s2)

这个功能能帮你吗

str = "aaa111bbb222ccc333ddd444eee555fff666"

def my_is_alpha(string, list):
    for start, end in list:
        if not string[start:end].isalpha():
            return False
    return True

list = [(0, 3), (6, 9), (12, 15)]
print(my_is_alpha(str, list))

输出:

> True

相关问题 更多 >

    热门问题