在括号中提取数据并在行尾添加

时间:2016-10-01 10:36:46

标签: python python-3.x

FILE.TXT:

first_name NVARCHAR2(15) NOT NULL,
middle_name NVARCHAR2(20) NOT NULL,
last_name NVARCHAR2(11) NOT NULL,

output i need:->output.txt
first_name NVARCHAR2(15) NOT NULL,15
middle_name NVARCHAR2(20) NOT NULL,20
last_name NVARCHAR2(11) NOT NULL,11

如何在括号内的File.txt中提取数据并在行尾添加?

1 个答案:

答案 0 :(得分:-1)

使用正则表达式 - 类似于:

import re
for line in input:
    m=re.search('\((\d+)\)',line)
    output.write(line.rstrip('\n')+m.group(1)+'\n')

搜索内容应与您要查找的内容相匹配(在我的示例中为\d+ - 匹配任何数字)。如果你期望句子中有多个括号,那么你应该提供更多信息。但一般来说,要为正则表达式提取匹配的一部分,请在要提取的内容周围使用括号,并在检索到的"匹配项目上使用group(index)" (示例中为m) - 其中index是您在正则表达式中放置的括号的索引,表示您要检索的内容(0表示整个匹配)。

例如:

m=re.search('a(.)c(.)e','abcde')
m.group(0)
'abcde'
m.group(1)
'b'
m.group(2)
'd'