这是一个比赛:添加锚点时,为什么这个正则表达式失败?
preg_match('/[a-bA-B0-9]+/', 'username')
但是,这并不:
preg_match('/^[a-bA-B0-9]+$/', 'username')
这是为什么?
这是一个比赛:添加锚点时,为什么这个正则表达式失败?
preg_match('/[a-bA-B0-9]+/', 'username')
但是,这并不:
preg_match('/^[a-bA-B0-9]+$/', 'username')
这是为什么?
你是在测试实际文字'username'
?
/[a-bA-B0-9]+/
会测试a中是否存在a,b,A,B,0,1,2,3,4,5,6,7,8,9 中的任何字符串。所以它会匹配abBa854Abba32
,它将匹配sjfsgfafnvesv
。
/^[a-bA-B0-9]+$/
将测试enitre字符串由a,b,A,B,0,1,2,3,4,5,6,7,8,9组成。所以它会匹配abBa854Abba32
,它不会匹配sjfsgfafnvesv
。
也许你的意思是/^[a-zA-Z0-9]+$/
。
第二个不匹配,因为你告诉正则表达式匹配开始的序列与字符类中的其中一个项目。你的字符串的第一个字母是“u”,你的角色类[a-bA-B0-9]中没有“u”。
你是绝对正确的。但是为什么它在第一个例子中没有失败呢? D: – 2012-04-13 02:39:33
因为''用户名'包含'a'。 – 2012-04-13 02:42:06
我真的需要一些正则表达式练习。感谢你们 – 2012-04-13 02:44:10