2011-08-23 75 views
2

为什么这个正则表达式不起作用?你可以看到表达式包含负面向前看,所以基本上如果字符串以字母开头和结尾,它应该拒绝它。但无论我输入什么,我都会一直如此。这是为什么发生?只拒绝密码中的字符串字符串

+3

“一个只有在密码字符字符串” ......什么? – BoltClock

+0

所以你想拒绝任何字符串,其中第一个和最后一个字符是字母,并接受所有其他字符? – alun

+0

我想他想要正则表达式* *不匹配任何以[a-zA-Z]开头或以[a-zA-Z]结尾的字符串,但上面的匹配它们 –

回答

5

你正则表达式什么都不匹配,后面跟一个纯字母数字字符串。所以每个输入都匹配。请记住,前瞻不是匹配的一部分 - 它只是一个条件。

使用此匹配不启动或字母结尾的所有输入:

"^[^a-z](.*[^a-z])?$"