我正在尝试创建一个 pig 拉丁转换器,该转换器在其第一个元音中拆分字符串,然后将第一个子字符串与第二个子字符串切换(例如dog-> ogd)。

以下正则表达式代码适用于单个元音字符串,但是,当尝试翻译具有多个元音的单词时,它将在最后一个元音处拆分字符串:
string.replace(/(\w+)([aeiou]\w+)/i, '$2$1')
在“意思”一词上运行此代码将导致“ingmean”(拆分为“i”),而我希望返回“eaningm”(拆分为“e”)

谢谢!

最佳答案

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

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

09-16 13:59