我想要的正则表达式会匹配任何只有字母的字符串,但内部没有元音。但我想只用一个[]
来做。正则表达式必须匹配a-z
之类的范围,并否定其他组aeiou
。
它会匹配:
pfbnzb
gpmrq
thgrt
pmmrrjhgz
mpll
而不是:
azertyui
aouie
halapala
pldhuddgr
我现在的正则表达式是:
^((?![aeiou])[a-z])+$
一个[]
的正则表达式是:
^[a-z^aeiou]+$
但^
如果不是[]
中的第一个字符,则被视为字符。
答案 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]
。