使用正则表达式统计Python程序中大写字母、小写字母、特殊字符和数字字符个数的程序


正则表达式,通常简称为re或Regex,是用于操作和搜索文本模式的强大工具。在Python中,正则表达式是使用re模块实现的。正则表达式是一系列字符,用于定义搜索模式。该模式用于匹配和操作文本字符串,这对于数据清洗、解析和验证等任务非常有用。

为了使用正则表达式(regex)统计字符串中大写字母、小写字母、特殊字符和数字字符的个数,我们可以使用特定的模式来匹配和统计所需的字符。

以下是使用正则表达式统计大写字母、小写字母、特殊字符和数字字符个数的模式及其解释:

  • 大写字母:

    • 模式:[A-Z]

    • 解释:模式[A-Z]匹配从A到Z的任何大写字母。连字符-指定字符范围。因此,此模式匹配输入字符串中的任何大写字母。

  • 小写字母:

    • 模式:[a-z]

    • 解释:模式[a-z]匹配从a到z的任何小写字母。与大写字母类似,此模式捕获输入字符串中的任何小写字母。

  • 特殊字符:

    • 模式:[A-Za-z0-9]

    • 解释:模式[^A-Za-z0-9]匹配任何不是大写字母、小写字母或数字的字符。方括号[]内的脱字符^表示否定。因此,此模式匹配不在A-Z、a-z或0-9范围内的任何特殊字符。

  • 数字:

    • 模式:[0-9]

    • 解释:该模式匹配从0到9的任何数字。

为了统计每个类别的出现次数,我们可以使用Python中re模块的re.findall()函数。此函数搜索输入字符串中模式的所有不重叠的出现,并将其作为列表返回。生成的列表的长度给出了出现次数。

输入输出场景

让我们探索一些输入输出场景,以统计给定字符串中大写字母、小写字母、特殊字符和数字字符的个数。

场景1:

Input string: Hello World!
Output:
Uppercase letters: 2
Lowercase letters: 8
Special characters: 1
Numeric values: 0

输入字符串“Hello World!”包含2个大写字母(H和W)、8个小写字母(e、l、l、o、o、r、l、d)、1个特殊字符(!)和0个数字。

场景2:

Input string: @#Hello1234#@
Output:
Uppercase letters: 1
Lowercase letters: 4
Special characters: 4
Numeric values: 4

输入字符串“@#Hello1234#@”包含1个大写字母(H)、4个小写字母(e、l、l、o)、4个特殊字符(@、#、#、@)和4个数字(1、2、3、4)。

示例

让我们举个例子来统计给定字符串中大写字母、小写字母、特殊字符和数字字符的个数。

import re

def count_characters(input_string):
    uppercase_count = len(re.findall(r'[A-Z]', input_string))
    lowercase_count = len(re.findall(r'[a-z]', input_string))
    special_count = len(re.findall(r'[^A-Za-z0-9]', input_string))
    numeric_count = len(re.findall(r'[0-9]', input_string))

    return uppercase_count, lowercase_count, special_count, numeric_count

# define the input string
input_str = 'Tutor1als!p0int'
upper, lower, special, numeric = count_characters(input_str)

print("Uppercase letters:", upper)
print("Lowercase letters:", lower)
print("Special characters:", special)
print("Numeric values:", numeric)

输出

Uppercase letters: 1
Lowercase letters: 11
Special characters: 1
Numeric values: 2

示例

在这个例子中,我们将统计文本文件中大写字母、小写字母、特殊字符和数字字符的个数。以下是文本文件中存在的数据:

import re

def count_characters(filename):
    with open(filename, 'r') as file:
        for line in file:
            uppercase_count = len(re.findall(r'[A-Z]', line))
            lowercase_count = len(re.findall(r'[a-z]', line))
            special_count = len(re.findall(r'[^A-Za-z0-9]', line))
            numeric_count = len(re.findall(r'[0-9]', line))

    return uppercase_count, lowercase_count, special_count, numeric_count

# Provide the path of the text file
file = 'Example_text_file.txt'

# Call the function to count Uppercase, Lowercase, special character and numeric values 
upper, lower, special, numeric = count_characters(file)

print("Uppercase letters:", upper)
print("Lowercase letters:", lower)
print("Special characters:", special)
print("Numeric values:", numeric)

输出

Uppercase letters: 1
Lowercase letters: 4
Special characters: 4
Numeric values: 4

更新于: 2023年8月29日

626 次查看

启动你的职业生涯

通过完成课程获得认证

开始学习
广告