<p>我想从单词中提取元素符号(如果有)。为此,我准备了一个正则表达式匹配模式,由元素周期表中所有元素的符号组成。在</p>
<pre><code>H|He|Li|Be|B|C|N|O|F|Ne|Na|Mg|Al|Si|P|S|Cl|Ar|K|Ca|Sc|Ti|V|Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr|Rb|Sr|Y|Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I|Xe|Cs|Ba|La|Ce|Pr|Nd|Pm|Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb|Lu|Hf|Ta|W|Re|Os|Ir|Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn|Fr|Ra|Ac|Th|Pa|U|Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr|Rf|Db|Sg|Bh|Hs|Mt
</code></pre>
<p>现在,对于给定的单词,我想使用上面的regex模式从中提取元素。我现在面临的问题是</p>
^{pr2}$
<p>我能提取</p>
<pre><code>C,In,S
</code></pre>
<p>作为元素。这是我需要的不正确的提取</p>
<pre><code>Cu, In, Se
</code></pre>
<p>而我得到的是“C,In,S”,我相信这是因为匹配模式在“Cu”之前看到“C”,在“Se”之前看到“S”(例如,当前的匹配模式是like)</p>
<pre><code>C | In | S | Cu | Se
</code></pre>
<p>为了解决这个问题,我想,我必须通过搜索模式中的所有单词来确保regex匹配我单词中最大数量的字符。在</p>