我正在尝试创建一个猪拉丁转换器,它将字符串分割为第一个元音,并将第一个子字符串切换为第二个子字符串(例如dog - > ogd)。
以下正则表达式代码适用于单个元音字符串,但是当尝试翻译具有多个元音的单词时,它会将字符串拆分为最后一个元音:
string.replace(/(\w+)([aeiou]\w+)/i, '$2$1')
在“含义”一词上运行此代码会导致“ingmean”(在'i'上分裂),而我期望返回“eaningm”(在'e'上分裂)
谢谢!
答案 0 :(得分:5)
这应该可以解决问题
/([^aeiou]+)([aeiou])([a-zA-Z]+)/
并使用
$ 2 $ 3 $ 1
答案 1 :(得分:4)
您需要添加延迟(?
)运算符:
string.replace(/(\w+?)([aeiou]\w+)/i, '$2$1')