是否有一个正则表达式匹配字母使用只有一个钩[]的元音?

时间:2018-02-20 10:02:08

标签: regex

我想要的正则表达式会匹配任何只有字母的字符串,但内部没有元音。但我想只用一个[]来做。正则表达式必须匹配a-z之类的范围,并否定其他组aeiou

它会匹配:

pfbnzb
gpmrq
thgrt  
pmmrrjhgz  
mpll

而不是:

azertyui  
aouie  
halapala  
pldhuddgr  

我现在的正则表达式是:

^((?![aeiou])[a-z])+$  

一个[]的正则表达式是:

^[a-z^aeiou]+$

^如果不是[]中的第一个字符,则被视为字符。

2 个答案:

答案 0 :(得分:3)

当然,只需将所有可能的字母添加到角色类中,例如

[bcdfghjklmnpqrstvwxyz]

或有几个范围

[b-df-hj-np-tv-z]

有一些正则表达式引擎支持不同类型的字符类替换,例如.net [a-z-[aeiou]]和Java [a-z&&[^aeiou]],但它不是常见的功能。

答案 1 :(得分:0)

  

一个[]的正则表达式是:^ [a-z ^ aeiou] + $

字符类([...])要么包含(当其中的第一个符号不是^时),要么排除(当它包含的第一个符号是^时)。它不可能都是。

包含所有字母但元音的一个字符类为[b-df-hj-np-tv-z]