`

正则手册

阅读更多

/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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics