使用正则表达式,如何测试给定字符串的最后一个字符以进行匹配?
我想检查某件事是否以下列任何一项结尾:
vowel+consonant ("like 'ur' in devour")
vowel+'nt' ("paint")
vowel+'y' ("play")还有一些类似的。
我如何使用正则表达式(在Java中)来完成这个任务?
编辑:我将如何使用正则表达式来判断一个动词是否以模式结尾?
consonant-'e'或其他各种组合,如
'ss' 'x' 'sh' 'ch' (sibilants)以使它们在英语中恰当地结合为动词。
发布于 2010-12-17 09:59:47
我想这是你想要的表达。第一位检查元音,第二位检查任何辅音或“nt”。
[aeiou]([^aeiou\W\d]|nt)$
我已经在http://regexpal.com/上检查过了,这是我通常的测试工具。[^aeiou\W\d]的意思是“any不是元音,是α-数字,但不是数字”。可以用所有的辅音代替,我想:
[aeiou]([bcdfghjklmnpqrstvwxyz]|nt)$
请注意,这会忽略除所列字符以外的任何字符的可能性。它还测试小写,但我不知道如何在Java中执行不区分大小写的正则表达式。
发布于 2010-12-17 09:57:30
您需要这样的正则表达式
^.*[aeiou]([^aeiou]|nt)$哪一个或多个字符,后面跟着a,e,i,o和u中的一个,后面跟着一个不是元音的字符,或者是nt。
正如注释中所指出的,除非假设只使用alpha字符,否则[^aeiou]不会按预期执行
https://stackoverflow.com/questions/4469318
复制相似问题