Unix正则表达式问题

Unix正则表达式问题,unix,computer-science,automata,qregularexpression,Unix,Computer Science,Automata,Qregularexpression,我正在开始研究正则表达式,我一直想知道如何用UNIX表示法为所有包含子字符串“ai”或“ui”的元音字符串构建和测试正则表达式 它会简单地像:(ai | ui)那样吗?我怎样才能测试它呢?IIUC,你想要类似的东西吗 “^[aeiou]*?(ai | ui)[aeiou]*$”。示例: $ echo aaauiaa | grep -E '^[aeiou]*?(ai|ui)[aeiou]*$' aaauiaa $ echo aaaaiaa | grep -E '^[aeiou]*?(ai|ui)[

我正在开始研究正则表达式,我一直想知道如何用UNIX表示法为所有包含子字符串“ai”或“ui”的元音字符串构建和测试正则表达式


它会简单地像:(ai | ui)那样吗?我怎样才能测试它呢?

IIUC,你想要类似的东西吗
“^[aeiou]*?(ai | ui)[aeiou]*$”
。示例:

$ echo aaauiaa | grep -E '^[aeiou]*?(ai|ui)[aeiou]*$'
aaauiaa
$ echo aaaaiaa | grep -E '^[aeiou]*?(ai|ui)[aeiou]*$'
aaaaiaa

那么你是在寻找a后跟i还是u后跟i?想象一下所有可能的元音组合aeiou:aeiuo aeuio等等。。。我需要选择每个包含子字符串ai或ui的字符串当我在上面测试这个表达式时,它不会选择包含子字符串“ai”或“ui”的元音字符串。它不应该在那里工作,但无论如何我现在更清楚了一点,不要放单引号,它们只是shell需要。试试
^[aeiou]*?(ai | ui)[aeiou]*$
非常感谢,我的错。它工作得非常好。如果您喜欢此答案,请将其标记为已解决,以让其他用户知道您的问题已解决。另请参阅