使用正则表达式找到第一个元音(Javascript)

jgr*_*une 6 javascript regex string split

我正在尝试创建一个猪拉丁转换器,它将字符串分割为第一个元音,并将第一个子字符串切换为第二个子字符串(例如dog - > ogd).

以下正则表达式代码适用于单个元音字符串,但是当尝试翻译具有多个元音的单词时,它会将字符串拆分为最后一个元音:

string.replace(/(\w+)([aeiou]\w+)/i, '$2$1')

在"意义"这个词上运行这个代码导致"ingmean"(在'i'上分裂),而我期望返回"eaningm"(在'e'上分裂)

谢谢!

Gil*_*ilZ 5

您需要添加惰性 ( ?) 运算符:

string.replace(/(\w+?)([aeiou]\w+)/i, '$2$1')
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 5

这应该可以解决问题

/([^aeiou]+)([aeiou])([a-zA-Z]+)/
Run Code Online (Sandbox Code Playgroud)

并使用

$ 2 $ 3 $ 1