擅长:python、mysql、java
<p>这是一种使用<code>Lookbehind & Lookahead</code>的方法。你知道吗</p>
<p>演示:</strong></p>
<pre><code>import re
s = """/begin FUNCTION
foo
"1.2.0 foo_long"
/begin DEF1
/end DEF1
FUNCTION_VERSION "1.2.0"
/end FUNCTION
/begin FUNCTION
bar
""
/end FUNCTION
/begin FUNCTION
urbi
"10.15.3 urbi_long"
/begin DEF1
/end DEF1
FUNCTION_VERSION "10.15.3"
/end FUNCTION"""
result = {}
for i in re.findall(r"(?<=/begin FUNCTION)(.*?)(?=/end FUNCTION)", s, flags=re.DOTALL):
val = i.strip().splitlines()
if val:
try:
result[val[0]] = val[1].replace('"', "").split()
except:
result[val[0]] = []
print(result)
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>{'urbi': ['10.15.3', 'urbi_long'], 'foo': ['1.2.0', 'foo_long'], 'bar': []}
</code></pre>