帮解释下正则表达式,看不懂啊.

不能把一个字符类当作一个范围的终点使用所以ereg('[A-[:lower:]]','string');是非法的正则表达式....看不懂是什么意思..ereg('[@[:... 不能把一个字符类当作一个范围的终点使用 所以ereg('[A-[:lower:]]','string');是非法的正则表达式....看不懂是什么意思..

ereg('[@[:digit:][:upper:]]'); 又是合法的啊,我都晕了 为什么?看不懂
展开
 我来答
xinglu1983
2007-08-12 · TA获得超过4750个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:147万
展开全部
我也是初学这个,帮你理解一下,有错误的地方多多包涵,呵呵:

不能把一个字符类当作一个范围的终点使用:

首先,你得明白[]的作用, [] 这对中括号里包涵的东西,代表一个字符的匹配,比如[a-z]代表任意一个小写字母的匹配,注意,是一个,就是说,a-z是这个匹配的范围,再看你的例子:[A-[:lower:]] 外面这对中括号里的范围应该是A-[:lower:],这个[:lower:]是posix风格的字符类,代表一个小写字母,也就是完全等同于我前面写的那个[a-z],知识写法不一样,但是他不能作为外面那个中括号的范围的终点,ok,明白了吧?

ereg是php里的一个字符匹配函数,他最少需要两个参数,第一个一般就是个正则表达式,第二个是需要检查的字符串,第三个参数可选,是存放的数组,你的这个ereg('[@[:digit:][:upper:]]'); 只有一个参数,这个我也不大懂,可能第二个参数被默认成空字符串了吧,所以返回的bool类型应该是false,你可以用个if语句测试下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式