擅长:python、mysql、java
<p>只需使用正则表达式</p>
<pre><code>import re
word = "anAconda_elEphant"
# use a "lookbehind" to make sure there is at least one character in front of this character...
print(re.sub("(?<=.)[aeiouyAEIOUY]",'',word))
# 'ancnd_lphnt'
</code></pre>
<p>如前所述,如果您希望它跳过集合的第一个匹配,而不是仅仅跳过第一个字母,您将需要一个不同的解决方案</p>
<pre><code>print(re.sub("(?<=.)[aeiouyAEIOUY]",'',"bace"))
# 'bc' # a is not the FIRST letter so it is replaced
</code></pre>
<p>最简单的方法是把它分成两个步骤
在第一场比赛中先把绳子分开</p>
<pre><code>word = "bace"
splitted_string = re.split("(.*?[aeiouyAEIOUY])",word,1)
# you will notice we have an extra empty string at the beginning of our matches ... so we can skip that
lhs,rhs = splitted_string[1:]
# now just run a simple re.sub on our rhs and rejoin the halves
print(lhs + re.sub("[aeiouyAEIOUY]",'',rhs))
# results in "bac"
</code></pre>