python实例练习00001:使用正则表达式获取文件内容

print('Hello World!')
import re
try:
    file = input('enter the file :')
    with open(file, 'r') as f:
       data = f.read()
except FileNotFoundError:print(f'the file {file} does not exists:')

# 定义正则表达式
pattern = r"num (\d+) name (\w+) class (\d+) age (\d+)"
# 使用正则表达式提取数据
match = re.search(pattern, data)
if match:
    print('the first matching data')
    num = match.group(1)
    name = match.group(2)
    class_num = match.group(3)
    age = match.group(4)
    print(f"num={num}, name={name}, class={class_num}, age={age}")
else:
    print('no match')

matchs = re.findall(pattern, data)
# 打印结果
if matchs:
    print('\n\nall matching data')
    for match in matchs:
        num = match[0]
        name = match[1]
        class_num = match[2]
        age = match[3]
        print(f"num={num}, name={name}, class={class_num}, age={age}")
else:
    print('no match')

文件内容为:log.txt

运行结果为:

 

### Python 正则表达式综合练习 对于希望深入理解和熟练掌握Python正则表达式的用户而言,存在多种资源可以提供帮助。Educoder平台提供了名为“【头歌系统Python实验】正则表达式入门”的课程模块,该模块旨在引导学生通过实际编程任务来熟悉正则表达式使用[^1]。 在此特定案例中,为了实现既能匹配`python`又能匹配`Python`的需求,可以通过定义一个包含大小写字母p的字符集并将其余部分固定下来的方式构建模式。具体来说就是利用方括号内的两个选项[Pp]作为首字母的选择条件: ```python import re pattern = r'[Pp]ython' text = 'This is about python and Python programming.' matches = re.findall(pattern, text) for match in matches: print(match) ``` 这段代码展示了如何创建一个简单的程序去查找给定字符串中的目标单词实例,无论其开头字母是否大写都能成功识别。 另外,在处理电话号码格式化问题上,如需设计一条既可接受带分隔符也可不带分隔符的形式,则应考虑采用非捕获群组(?:...)以及量词?来表示可能出现一次也可能不存在的部分。针对“(010)-62661617”或“01062661617”,下面给出了一种可能适用的解决方案: ```regex ^(?:\(\d{3}\)|\d{3})[-]?\d{8}$ ``` 此正则表达式能够满足题目描述的要求,即完全匹配上述两种形式之一的电话号码[^2]。 #### 关于更广泛的练习与学习资料推荐 除了完成具体的编码挑战外,还建议探索更多关于正则表达式的理论知识及其应用场景的学习材料。这不仅限于在线教程、官方文档,还包括参与社区讨论和技术论坛交流经验心得等途径。实践证明,持续不断地接触不同类型的问题有助于加深理解并提高解决问题的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值