我正在尝试从字符串中删除除第一个和最后一个字符之外的所有元音。我尝试了 2 种表达式并使用 2 种方式,但徒劳无功。我在下面描述了它们。有人对此有正则表达式吗?
例如
原始字符串 -- source = apeaple
在 regex -- source_modified = apple 之后(这是预期的)
我尝试了这个表达式,([a-zA-Z])[aeiouAEIOU]([a-zA-Z])
但这个表达式也删除了重复的字符。所以当我应用上述表达式时会发生以下情况
使用的代码——
正则表达式 reg = new Regex("([a-zA-Z])[aeiouAEIOU]([a-zA-Z])"); string source_modified = reg.Replace(source, "");
原始字符串 -- source = apeaple
代码执行后 -- source_modified = aple (删除重复字符)
使用的代码—— string source_modified = Regex.Replace(source, "([a-zA-Z])[aeiouAEIOU]([a-zA-Z])", "$1" + "$2");
原始字符串 -- source = apeaple
代码执行后 -- source_modified = apaple (仅删除 1 个元音)
我也尝试过([a-zA-Z])[aeiouAEIOU]*([a-zA-Z])
,但这只是删除了 1 个元音,而不是全部。所以当我应用上述表达式时会发生以下情况
使用的代码——
正则表达式 reg = new Regex("([a-zA-Z])[aeiouAEIOU]*([a-zA-Z])"); string source_modified = reg.Replace(source, "");
原始字符串 -- source = apeaple
代码执行后 -- source_modified = "" (所有字符都被删除)
使用的代码—— string source_modified = Regex.Replace(source, "([a-zA-Z])[aeiouAEIOU]*([a-zA-Z])", "$1" + "$2");
原始字符串 -- source = apeaple
代码执行后 -- source_modified = apeple