擅长:python、mysql、java
<p>简而言之,你可以告诉我们:</p>
<pre><code>GOODLINE[\d+]*\n.*property1=(.+)*\n.*property2=(.+)*\n?
</code></pre>
<p>在本例中,两个括号将是您要查找的值。如果在以windows/mac样式创建的文件中有字符串,则会有不同的结束字符:windows中的“\r\n”和mac中的“\r”。在linux系统中,只有'\n'。上面的模式将与字符串开头或结尾的任何一行匹配,即使结尾没有任何换行符。属性中的值也可以是多个字符。你知道吗</p>
<p>您可以尝试一个非常有用的网站<a href="http://pythex.org/" rel="nofollow">Pythex</a>来尝试正则表达式。你知道吗</p>
<p>您可以尝试的代码是:</p>
<pre><code>import re
pattern = re.compile('GOODLINE[\d+]*\n.*property1=(.+)*\n.*property2=(.+)*\n?')
matchRes = re.findall(pattern,'''BadLine2
property1=c
property2=d
GOODLINE11
property1=e
property2=f
BadLine2
property1=c
property2=d
GOODLINE11
property1=eee34
property2=f00
BadLine2
property1=c
property2=d
GOODLINE1
property1=e
property2=f''');
if matchRes:
print matchRes
else:
print 'No match'
</code></pre>
<p>您将在一个列表中得到以下结果,其中每对都是property1和property2值:</p>
<pre><code>[('e', 'f'), ('eee34', 'f00'), ('e', 'f')]
</code></pre>