Shaquila_Chau 2021-11-23 10:10 采纳率: 70%
浏览 22
已结题

python如何实现循坏匹配字符?

首先是有一串文本:
region42372,region42373,region42374,region42375,region42376,region42377,region42378,region42379,region42380,region42381,region42382,region42383
region42851,region42852,region42853,region42854
region47924,region47925,region47926,region47927,region47928,region47929,region47930,region47931,region47932,region47933,region479
region49003,region49004,region49005,region49006,region49007,region49008
egion49177,region49178,region49179,region49180,region49181,region49182,region49183,region49184,region49185,region49186,region49187,region49188,region49189,region49190,region49191
比如说我想要寻找一堆关键字符所在的行关键字符为【region2536,region42377,region47933,region49033,region27432,region491,region49177,region42373】
我试过用正则表达式,但是我只能是手动改变那个匹配字符,我想请问正则表达式是否能够实现循环更改匹配字符?
(以下是我单个匹配关键字符的代码)

import re
with open('test.txt','r') as fin:  #我读取文本然后逐行匹配
    for i in fin:
        #print(y)
        m = re.findall('(.*)region42373(.*)',i)   #我在想这个region42373是否可以是一个列表然后递归上面的所有关键字符
        print(m)

我在想这个是否可以把关键字符放在一个列表里面然后循环递归下一个关键字符,我试过把所有关键字符放在一个列表里面,但是出错了。

import re
a_list=['region56485','region56144','region65698','region65790']
with open('test.txt','r') as fin:
    for i in fin:
        #print(y)
        for y in a_list:
            m = re.findall('(.*)y(.*)',i)  #我在想y在这里已经变成了一个字符y所以出错,但是我具体又不知道怎么修改
            print(m)

请问有哪位朋友可以指教?

  • 写回答

3条回答 默认 最新

  • python收藏家 2021-11-23 10:37
    关注

    字符串格式化输出

    '(.*){}(.*)'.format(y)
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月23日

悬赏问题

  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?