我有一个文件,其中主要包含映射到特定数字列表的名称。我想分析这个文件,并且我认为正则表达式在这里会很好。我不过有两个问题:正则表达式匹配名称后跟可选空格,但忽略注释
的名称可以由任何一个字或词,然后更多的单词,或者用下划线词的。一个词还可以包含以下字符:
(/->)
在文件的开头和其他一些不应包含在结果中的地方有一条评论。这些评论总是
---
其次是一些文本行,后跟的---
所以另一条线,如果我有以下文件
-----------------------------------
Comment
-----------------------------------
Ignore these lines
-----------------------------------
someVar 0.0 1.0
some var with spaces 52 93
another var_with_underscores 3
some var with (special->chars) 13 37 95
another char/slash 132
-----------------------------------
Another comment
-----------------------------------
yet another var 27.3 9
我想回到字典
{"someVar": [0.0, 1.0],
"some var with spaces": [52, 93],
"another var_with_underscores": [3],
"another char/slash": [132]
"some var with (special->chars)": [13, 37, 95],
"yet another var": [27.3, 9]}
如果问一个问题太多了,我会很高兴知道正则表达式。
我正在使用Python 2.7。
您的评论划界似乎很模糊,你如何知道第二个评论是评论而不是解析的东西? – shenshei 2012-02-08 09:58:31
你试过了什么正则表达式? – steabert 2012-02-08 10:07:23
@shenshei:这是一个很好的问题,我的猜测是一个可解析的行将始终至少有一个数字。@steabert:我是一个正则表达式的新手,我试过的东西到目前为止只匹配没有特殊字符的可解析行,沿着'[a-zA-Z] [a-zA-Z _]行行([a-zA-Z _] *)?'(一个单词可选地跟着更多单词 – 2012-02-08 10:20:16