<p>您可以在第一行中匹配捕获组中的ANYNAME1,然后使用<code>.*</code>到达该行的末尾,并使用<code>\n</code>匹配新行到达第二行。在那里,你可以使用3个组来匹配和捕捉你的价值观。你知道吗</p>
<pre><code>/begin MEASUREMENT ([\w.]+).*\nSWORD ([\w.]+) \d+ \d+ (-?\d+(?:\.\d+)?) (-?\d+(?:\.\d+)?)
</code></pre>
<p><a href="https://regex101.com/r/fdkNJH/1" rel="nofollow noreferrer">Regex demo</a>| <a href="https://ideone.com/gKprKD" rel="nofollow noreferrer">Python demo</a></p>
<p><strong>解释</strong></p>
<ul>
<li><code>/begin MEASUREMENT</code>按字面意思匹配,后跟空格</li>
<li><code>([\w.]+).*\n</code>捕获1+个单词字符或组1中的一个点,并匹配到字符串的末尾。然后匹配新行</li>
<li><code>SWORD ([\w.]+)</code>匹配剑并在2组中捕获1+次一个单词char或dot</li>
<li><code>\d+ \d+</code>匹配空格,1+数字,空格,1+数字空格</li>
<li><code>(-?\d+(?:\.\d+)?) (-?\d+(?:\.\d+)?)</code>在第3组和第4组中捕获一个可选的减号、1+数字和一个可选的小数部分(中间有空格)</li>
</ul>
<p>例如:</p>
<pre><code>import re
regex = r"/begin MEASUREMENT ([\w.]+).*\nSWORD ([\w.]+) \d+ \d+ (-?\d+(?:\.\d+)?) (-?\d+(?:\.\d+)?)"
test_str = ("/begin MEASUREMENT ANY.NAME1 \"Unterstützungskraft Softwaremodul \"\n"
"SWORD ANYN.AME2 1 100 -2342342523 -14.29")
print(re.findall(regex, test_str))
# [('ANY.NAME1', 'ANYN.AME2', '-2342342523', '-14.29')]
</code></pre>