擅长:python、mysql、java
<p>使用</p>
<pre><code>(?i)\bUsername\s*[:;]\s*(\S+)
</code></pre>
<p>见<a href="https://regex101.com/r/ftNHVe/1" rel="nofollow noreferrer">proof</a>。与其使用<code>\K</code>,不如使用捕获组,<code>(\S+)</code>将一个或多个非空白字符捕获到一个组中</p>
<p>Python<a href="https://regex101.com/r/ftNHVe/1/codegen?language=python" rel="nofollow noreferrer">demo code</a>:</p>
<pre><code>import re
regex = r"(?i)\bUsername\s*[:;]\s*(\S+)"
test_str = ("Username:dasdsad\n"
"username ;dasdsad\n"
"username : dasdsad\n"
"username; dasdsad")
print( re.findall(regex, test_str) )
</code></pre>
<p><strong>更新:</strong></p>
<p>更换并保留部分火柴使用</p>
<pre><code>test_str = re.sub(r'(?i)(\bUsername\s*[:;]\s*)\S+', r'\1username', test_str)
</code></pre>
<p>如果需要替换为数字:</p>
<pre><code>test_str = re.sub(r'(?i)(\bUsername\s*[:;]\s*)\S+', r'\g<1>1234', test_str)
</code></pre>