擅长:python、mysql、java
<p>插入符号(^)匹配字符串中第一个字符之前的位置</p>
<p>如果不使用<code>re.MULTILINE</code>,则不需要这样做,因为您使用了<a href="https://docs.python.org/3/library/re.html#re.match" rel="nofollow noreferrer">^{<cd2>}</a>:</p>
<blockquote>
<p>If zero or more characters at <strong>the beginning</strong> of string match the regular expression pattern, return a corresponding match object.</p>
</blockquote>
<h2>解决方案</h2>
<p>我们可以使用命名组捕获单个正则表达式中的相关部分,然后使用<a href="https://docs.python.org/3/library/re.html#re.Match.groupdict" rel="nofollow noreferrer">^{<cd3>}</a>将结果作为字典:</p>
<pre class="lang-py prettyprint-override"><code>import re
REGEX = r'(?P<role>.+?),\s+(?P<company>.+?)\s+X\s+(?P<message>.+)'
re.match(REGEX, "SM Analyst, AMT Tax Company X Hi.").groupdict()
</code></pre>
<blockquote>
<p><code>{'role': 'SM Analyst', 'company': 'AMT Tax Company', 'message': 'Hi.'}</code></p>
</blockquote>