Board logo

标题: php常见 regex 正则操作符 [打印本页]

作者: fangzhen    时间: 2009-12-18 14:08     标题: php常见 regex 正则操作符

操作符用途
.(句点) 匹配所有单个字符
^(脱字符号)匹配出现在行或字符串开头的空字符串
$(美元符号)匹配出现在行尾的空字符串
A 匹配大写字母 A
a匹配小写字母 a
\d匹配所有一位数字
\D 匹配所有单个非数字字符
\w匹配所有单个字母或数字字符;同义词是 [:alnum:]
[A-E] 匹配所有大写的 A、B、C、DE
[^A-E] 匹配大写 A、B、C、DE 之外的任何字符
X? 匹配出现零次或一次的大写字母 X
X*匹配零个或多个大写字母 X
X+ 匹配一个或多个大写字母 X
X{n} 精确匹配 n 个大写字母 X
X{n,m}至少匹配 n 个且不多于 m 个大写字母 X;如果忽略 m,则表达式将尝试匹配至少 nX
(abc|def)+ 匹配一连串的(最少一个)abcdefabcdef 将匹配
下面是 regex 的常见用法示例。 假定 Web 站点要求每个用户创建一个登录名。每个用户名至少要包含 3 个但不多于 10 个字母数字字符,并且必须以字母为开头。要强制遵守这些规范,可以使用以下 regex 在提交给应用程序时验证用户名:^[A-Za-z][A-Za-z0-9_]{2,9}$。 脱字符号将匹配字符串的开头。第一个集合 [A-Za-z] 表示所有字母。第二个集合 [A-Za-z0-9_]{2,9} 表示由至少 2 个至多 9 个任意字母、数字和划线组成的序列。并且使用美元符号 ($) 匹配字符串末尾。 乍看之下,美元符号可能看似不必要,但是它是至关重要的。如果忽略掉它,regex 将匹配开头为字母、包含 2 至 9 个字母数字字符以及任意数目的任何其他字符的所有字符串。换言之,没有美元符号锚定字符串的结尾,带有匹配前缀(例如 “martin1234-cruft”)的非常长的字符串将生成误判 (false positive)。




欢迎光临 PHP开发笔记 (http://phpvi.com/) Powered by Discuz! 6.1.0