擅长:python、mysql、java
<p>以下代码:</p>
<pre><code>import re
test = '''
BadLine
property1=a
property2=b
BadLine2
property1=c
property2=d
GOODLINE1
property1=e
property2=f
BadLine
property1=a
property2=b
BadLine2
property1=c
property2=d
GOODLINE2
property1=e
property2=f
'''
pattern = r'^(GOODLINE(?:[^\n]|\n )*)'
print re.compile(pattern, re.MULTILINE).findall(test)
</code></pre>
<p>产生以下结果:</p>
<pre><code>['GOODLINE1\n property1=e\n property2=f', 'GOODLINE2\n property1=e\n property2=f']
</code></pre>
<p>模式匹配出现在行首的“GOODLINE”,以及行尾的非换行符,以及后跟空格符的换行符。如果文本在换行符后实际有制表符而不是空格,则可以将空格改为制表符。或者,您可以通过如下方式更改模式来轻松匹配:</p>
<pre><code>pattern = r'^(GOODLINE(?:[^\n]|\n[ \t])*)'
</code></pre>
<p>一旦有了这些匹配项,就非常容易使用正则字符串<code>split()</code>来提取属性。你知道吗</p>
<p>或者,您可以查看rson包解析是否满足您的需要这看起来像是一个可以轻松解析的文件。你知道吗</p>