這年底擺脫所有元音的是我:一個字符串
word = Regex.Replace(word, @"[aeiouyAEIOUY]\z", String.Empty);
但我認爲這只是擺脫了最後一個字母(如果它是一個元音)。
所以jrhyui
會返回jrhyu
而我真的想要返回jrh
。
這年底擺脫所有元音的是我:一個字符串
word = Regex.Replace(word, @"[aeiouyAEIOUY]\z", String.Empty);
但我認爲這只是擺脫了最後一個字母(如果它是一個元音)。
所以jrhyui
會返回jrhyu
而我真的想要返回jrh
。
你很近。 [aeiouyAEIOUY]
是一個字符類,它完全匹配一個元音。你想從字符串末尾刪除全部元音,所以匹配一個或多個字符類的實例。您可以通過在末端附加+
做到這一點,就像這樣:
[aeiouyAEIOUY]+\z
// ^-- match any single character in the list one or more times
小調整到原來的代碼應該這樣做:
word = Regex.Replace(word, @"[aeiouyAEIOUY]*\z", String.Empty);
下面的模式將匹配您的條件:(?i)[aeiou]+(?>$)(?-i)
正是我需要的,謝謝! – user2340818