通过正则表达式结尾检测元音

时间:2010-12-17 09:51:04

标签: java regex

使用正则表达式,我如何测试匹配的给定字符串的 last 字符?

我想检查以下任何一项结束的内容:

vowel+consonant ("like 'ur' in devour")
vowel+'nt' ("paint")
vowel+'y' ("play")

和其他一些相似的人。

如何使用正则表达式(在Java中)?

<小时/> 编辑: 我如何使用正则表达式来确定动词是否以

模式结束
consonant-'e'

或其他各种组合,如

'ss' 'x' 'sh' 'ch' (sibilants)

为了将它们用英语作为动词正确地结合起来。

2 个答案:

答案 0 :(得分:2)

我认为这是你想要的表达方式。第一位检查元音,第二位检查任何辅音或'nt'

[aeiou]([^aeiou\W\d]|nt)$

我在http://regexpal.com/检查过,这是我常用的测试人员。 [^aeiou\W\d]表示'任何不是元音的字母,都是字母数字,但不是数字'。我猜想它可以被所有辅音取代:

[aeiou]([bcdfghjklmnpqrstvwxyz]|nt)$

请注意,这忽略了除列出的字符之外的任何字符的任何可能性。它还测试小写,但我不确定如何在Java中使用不区分大小写的正则表达式。

答案 1 :(得分:0)

你需要像这样的正则表达式

^.*[aeiou]([^aeiou]|nt)$

零个或多个字符,后跟a,e,i,o和u中的一个,后跟一个不是元音的字符,或者恰好是nt

正如评论中指出的那样,除非您假设仅使用字母字符,否则[^aeiou]无法按预期执行