母音の後h
をマッチングするための正規表現は、1
(?<=a|e|y|u|o|a)h
正の後読みになるとあなたは母音の後に複数のh
を持つことができる場合は、しかし
re.sub(r"([a-zA-Z]*?)(?<=a|e|y|u|o|a)h([a-zA-Z]*)",r"\1\2",s)
を行うことができます正規表現は動的マッチンググループをサポートしていないので、文字列の場合、いくつかの繰り返しを行う必要があります
import re
s = "bahtbaht"
s1 = s
while True:
s1 = re.sub(r"([a-zA-Z]*?)(?<=a|e|y|u|o|a)h([a-zA-Z]*)",r"\1\2",s)
if len(s1) == len(s):
break
s = s1
print(s1)
repl
import re
def subit(m):
match, = m.groups()
return match
s = "bahtbaht"
print(re.sub(r"([a-zA-Z]*?)(?:(?<=a|e|y|u|o|a)h|$)",subit,s))
のための多くのsimplierの答えを機能を使用して、より適切な形で
、 `re.sub(R"([AEIOU])と間違って何
re.sub(r"([aeiou])h", r"\1", s, flags = re.I)
を@tobias_kのおかげh "、r" \ 1 "、s)'?ちょうどうまくいくと思う。また、 're.I'フラグを追加することもできます。 –
@tobias_k何も間違って、答えを編集します、ありがとう! – buld0zzr
ああ..その()私は間違っていた。みんなありがとう – Horseshaq