擅长:python、mysql、java
<p>您可以匹配单词,后跟尽可能少的字符,直到您可以捕获组1中后跟欧元符号的金额</p>
<pre><code>\bWord1 .*?\b([0-9]{1,4}(?:[.,]\d+)?) €
</code></pre>
<p>模式匹配:</p>
<ul>
<li><code>\bWord1 .*?</code>匹配单词,后跟空格和尽可能少的字符</li>
<li><code>\b(</code>单词边界,开始<strong>组1</strong>
<ul>
<li><code>[0-9]{1,4}(?:[.,]\d+)?</code>将1-4位数字与可选的小数部分匹配</li>
</ul>
</li>
<li><code>)</code>闭合组1</li>
<li><code> €</code>逐字匹配(如果可以有0个或更多空格字符,则使用<code>\s*€</code>)</li>
</ul>
<p><a href="https://regex101.com/r/A0t1ww/1" rel="nofollow noreferrer">Regex demo</a></p>
<p>范例</p>
<pre><code>import re
regex = r"\bWord1 .*?\b([0-9]{1,4}(?:[.,]\d+)?) €"
s = ("Word1 zerdezd : 1243 €\n"
"Word1 zerdezd 1243 €\n"
"Word1 zerdezd ezrozeu : 1243 €")
print(re.findall(regex, s))
</code></pre>
<p>输出</p>
<pre><code>['1243', '1243', '1243']
</code></pre>
<p><a href="https://ideone.com/yCcCDk" rel="nofollow noreferrer">Python demo</a></p>