我有一个包含以下字符串结构的文件:
{dh31100_eurex_internalisation_uat} {DS_REG_PRIMARY} {dh31100} {MMI_PLUGIN_API} {MMI_PLUGIN_API} {20140730}
{ss26879_cc34355_BP_SK_UAT_REGRESSION} {DS_REG_PRIMARY} {dr48750} {MMI_PLUGIN_API} {MMI_PLUGIN_API} {20140730}
{js02041_ba89385_spreads} {DM_SERVER} {ba89385} {MMI_PLUGIN_API} {MMI_PLUGIN_API} {20140731}
{js02041_sc84647_GBP_Analytics} {DS_REG_PRIMARY} {js02041} {MMI_PLUGIN_API} {MMI_PLUGIN_API} {20140721}
...
整个文件的样式相同,通常包含> 100行。
在给定一致结构(总是6组括号)的情况下,创建语法的最佳方法是在括号内提取字符串并从中创建列表。
最终游戏将在列表元素之间进行比较。
答案 0 :(得分:0)
for line in f.readlines():
line.strip('{}').split('} {')`
应该将文件中的每一行转换为字符串列表。然后你可以按照自己的意愿比较它们。
答案 1 :(得分:0)
这将搜索一组{}
- 引用的字符串。它将返回字符串列表的列表。
import re
import sys
# (?<={) = look-behind assertion. Only match if previous token was {
# .*? = Non-greedy search for any character
# (?=}) = look-ahead assertion. Only match if next token will be }
pattern = '(?<={).*?(?=})'
pattern = re.compile(pattern)
with open(sys.argv[1]) as input_file:
data = [pattern.findall(line) for line in input_file]
print data