擅长:python、mysql、java
<p>你可以用</p>
<pre class="lang-py prettyprint-override"><code>r'(?i)cig[\s:.]*(\S(?:\s*\S){9})(?!\S)'
</code></pre>
<p>见<a href="https://regex101.com/r/0QpxQu/1" rel="nofollow noreferrer">regex demo</a><em>详细信息</em>:</p>
<ul>
<li><code>cig</code>-一个<code>cig</code>字符串</li>
<li><code>[\s:.]*</code>-零个或多个空格,<code>:</code>或<code>.</code></li>
<li><code>(\S(?:\s*\S){9})</code>-组1:一个非空白字符,然后出现九个零或多个空白字符,后跟一个非空白字符</li>
<li><code>(?!\S)</code>-右边必须有空格或字符串结尾</李>
</ul>
<p>在Python中,可以使用</p>
<pre class="lang-py prettyprint-override"><code>import re
text = "/BENEF/FORNITURA GAS FEB-20 CIG Z9F 27D2198 01762-0000031"
pattern = r'cig[\s:.]*(\S(?:\s*\S){9})(?!\S)'
matches = re.finditer(pattern, text, re.I)
for match in matches:
print(re.sub(r'\s+', '', match.group(1)), ' found at ', match.span(1))
# => Z9F27D2198 found at (32, 57)
</code></pre>
<p>见<a href="https://ideone.com/ykcie9" rel="nofollow noreferrer">Python demo</a></p>