在Python中使用Regex的Match函数在末尾输出一个额外的逗号

2024-10-03 06:29:33 发布

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

我不知道为什么在python中将Match()与Regex一起使用时,在每个输出的末尾都会有一个额外的逗号。有什么想法吗?谢谢

我的代码:

 import re

 yyyyfile = open("yyyy.txt",'w')

 text = open('final.txt')

 for line in text: 

    x = re.match('.*?^([0-9][0-9][0-9][0-9])$.*', line)

    if x:

        print >> yyyyfile, x.groups()

电流输出:

('1573',)

('1595',)

('1929',)

('1933',)

期望输出:

('1573')

('1595')

('1929')

('1933')


Tags: 代码textimportretxtmatchlineopen
3条回答

我不知道yyyy.txt里面是什么,为什么要打印它,但假设final.txt包含了打开文件时应该使用的文本:

with open('final.txt', 'r') as f:
    text = f.read()

解析的工作方式如下:

import re

text = '''1235, dfx as nxcn 1229 nxcn 32 4 0 9877'''

matches = re.findall('(\d{4})', text)

for match in matches:
    print(match)

你没有得到一个额外的逗号,因为你使用匹配。得到这个逗号的原因是打印元组。你可以像这样达到预期的效果

print >> yyyyfile, '(%s)' % x.group(1)

这是因为re.match的groups()的输出是您捕获的所有组。它是一个元组。
改用x.group(1)或其他什么

相关问题 更多 >