使用正则表达式,我如何测试匹配的给定字符串的 last 字符?
我想检查以下任何一项结束的内容:
vowel+consonant ("like 'ur' in devour")
vowel+'nt' ("paint")
vowel+'y' ("play")
和其他一些相似的人。
如何使用正则表达式(在Java中)?
<小时/> 编辑: 我如何使用正则表达式来确定动词是否以
模式结束
consonant-'e'
或其他各种组合,如
'ss' 'x' 'sh' 'ch' (sibilants)
为了将它们用英语作为动词正确地结合起来。
答案 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]
无法按预期执行