/love/ 定界符
元字符包括:"+" "*" "?"
“+” 前导字符必须出现一次或多次 /fo+/ fo football {1,*}
"*" 前导字符必须出现零次或多次 /eg*/ easy egg ego {0,*}
"?" 前导字符必须出现零次或一次 /wil?/ win wilson {0,1}
{2,6} 确定前字符的出现次数 /jim{2,6}/ 匹配 jimmy , jimmmmmmmy
要点:’*’ ‘+’ 和 ‘?’ 只管它前面那个字符。
如果有 () 的话. 应该是管()内的字符
重要的元字符
\s 匹配单个空格符,包括tab键和换行符
\S 匹配单个空格符以外的所有字符
\d 匹配0-9的数字
\w 匹配字母,数字或下划线的字符
\W 匹配所有\w不匹配的字符
. 匹配换行符之外的所有字符
/\s+/ 一个或多个空格
/\d000/ 总额大于1000的
定位符:
"^" "$" "\b" "\B"
"^" 字符的开头 /^hell/ hell开头 hell hello hellowley
"$" 字符的结尾 /ar$/ car bar plar
"\b" 字符的头或尾 /\bbom/ bomb bom /man\b/ human woman man
"\B" 字符的内部
/[A-Z]/ 所有大写字母匹配
/[a-z]/ 所有小写字母匹配
/[0-9]/
/([a-z][A-Z][0-9])+/
/to|too|2/ 或运算
[^] 否定符
/[^A-C]/ 除去 A-C字符外的所有字符
表达式中需要加入元字符时. 需要用到的转义符"\"
/Th\*/
ereg(pattern,string)
if(ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-)+(\.[a-zA-Z0-9_-])+".$emall)
{
echo "you email is right";
}else{
echo "you email is wrong!";
}
^[a-zA-Z0-9_-]+@(a-zA-Z0-9_-\.)+(.[a-zA-Z0-9-])*$
//php中特殊的地方
preg_match
preg_match_all
设定此修正符
<?php
// 从 URL 中取得主机名
preg_match("/^(http:\/\/)?([^\/]+)/i",
"http://www.php.net/index.html", $matches);
$host = $matches[2];
// 从主机名中取得后面两段
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>
<?php
/* 模式中的 \b 表示单词的边界,因此只有独立的 "web" 单词会被匹配,
* 而不会匹配例如 "webbing" 或 "cobweb" 中的一部分 */
if (preg_match ("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}
if (preg_match ("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>
i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)
i 模式中的字符将同时匹配大小写字母
m 字符串视为多行
s 将字符串视为单行,换行符作为普通字符
x 将模式中的空白忽略
e preg_replace() 函数在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串。
A 强制仅从目标字符串的开头开始匹配
D 模式中的 $ 元字符仅匹配目标字符串的结尾
U 匹配最近的字符串
u 模式字符串被当成 UTF-8