擅长:python、mysql、java
<pre><code>msg = re.match('(?P<status_code>[0-9]+)\|(?P<status_message>[^|]+)\|(?P<gateway_message_id>[a-zA-Z0-9-]+)', '2|missing or invalid fields|0')
</code></pre>
<p>完全匹配,然后可以通过<code>msg.group('status_code')</code>访问各个部分</p>
<p>不带\的版本也会匹配,但它只会捕获“2”,并且不会填充第二行示例中的所有三个组。在</p>
<p>如果您想在包含多行的文本上运行此操作,可以执行以下操作</p>
^{pr2}$
<p>或者反过来说:</p>
<pre><code>for line in youtext.split('\n'):
m = re.match(msg = re.match('(?P<status_code>[0-9]+)\|(?P<status_message>[^|]+)\|(?P<gateway_message_id>[a-zA-Z0-9-]+)', line)
if m:
print m.group('status_code'), m.group('status_message'), m.group('gateway_message_id')
</code></pre>
<p>我想这涵盖了所有的选项,而且没有一个选项与第一部分中没有数字错误代码的第一行相匹配。在</p>