擅长:python、mysql、java
<p>我假设email ID是指<code>@</code>符号前面的部分,否则就是完整的电子邮件地址。你知道吗</p>
<pre><code>.+(?=@)(?!@ruba\.com)
</code></pre>
<ul>
<li><code>.</code>点字符是正则表达式引擎的特殊符号
它被用来捕捉一切</li>
<li><code>*</code>也称为<a href="https://regexone.com/lesson/kleene_operators" rel="nofollow noreferrer">Kleene plus</a>表示要捕获前面符号的一个或多个实例,在我们的例子中是<code>.</code>;基本上是说“给我每个字符”</li>
<li><code>(?=@)</code>是一个积极的前瞻性,即一个特殊的搜索功能,确保后面的内容是<code>@</code>;我使用它将光标移到<code>@</code>的位置并“停止”捕获,否则<code>+</code>将无限期地继续</li>
<li><code>(?!@ruba\.com)</code>是一种消极的前瞻性,即一种特殊的搜索功能,它确保后面的内容不是(<code>!</code>)<code>@ruba\.com</code>;我对点进行了转义,以避免将其与之前所说的“捕获所有”符号混淆</li>
</ul>
<p>现场演示<a href="https://regex101.com/r/qNA8vG/1/" rel="nofollow noreferrer">here</a>。你知道吗</p>