如何使用正则表达式提取文本文件中的特定值并将提取的值保存在另一个文件中?

时间:2019-06-18 05:24:42

标签: python regex

有一个文本文件很多值,如何从中提取特定部分并将其按顺序排列在另一个文本文件中

文本文件的一部分:

{
"number": "acd162",
"password": "pass1425-*",
"Type": "phone"

}
{
"number": "bcd119",
"password": "pass1234- ",
"Type": "phone"

}
{
"number": "abc123",
"password": "pass0*++",
"Type": "phone"

{
"number": "ahwc1286",
"password": "pass*-+",
"Type": "phone"

}

我需要的输出:

需要另一个文本文件中的所有密码列为

1="pass1425-"
2="pass1234- "
3="pass0*++"
4="pass*-+"

尝试了这个:

"password":.* "\w+" 

但无法弄清楚我应该如何提取它们并为它们分配1,2,3,4,5 ........

1 个答案:

答案 0 :(得分:1)

如果文本文件不是JSON:

import re

data = '''
{
"number": "acd162",
"password": "pass1425-*",
"Type": "phone"

}
{
"number": "bcd119",
"password": "pass1234- ",
"Type": "phone"

}
{
"number": "abc123",
"password": "pass0*++",
"Type": "phone"

{
"number": "ahwc1286",
"password": "pass*-+",
"Type": "phone"

}
'''

for i, p in enumerate(re.findall(r'"password":[^"]*"(.*?)"', data), 1):
    print('{}="{}"'.format(i, p))

打印:

1="pass1425-*"
2="pass1234- "
3="pass0*++"
4="pass*-+"

如果是JSON:

import json

data = '''
[{
"number": "acd162",
"password": "pass1425-*",
"Type": "phone"

},
{
"number": "bcd119",
"password": "pass1234- ",
"Type": "phone"

},
{
"number": "abc123",
"password": "pass0*++",
"Type": "phone"
},
{
"number": "ahwc1286",
"password": "pass*-+",
"Type": "phone"
}]
'''

for i, d in enumerate(json.loads(data), 1):
    print('{}="{}"'.format(i, d['password']))

打印:

1="pass1425-*"
2="pass1234- "
3="pass0*++"
4="pass*-+"