注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿飘的博客

十里平湖霜满天 寸寸青丝愁华年

 
 
 

日志

 
 

php字符串和正则表达式  

2009-07-01 10:56:53|  分类: 正则表达式 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、字符串的偏移语法
    以前的方式
        <?php
            $thing="php";
            echo $thing;
            echo "<br />";
            echo $thing[0];
            echo $thing[1];
            echo $thing[2];
         ?>
    新的格式
        <?php
            $thing="php";
            echo $thing;
            echo "<br />";
            echo $thing{0};
            echo $thing{1};
            echo $thing{2};
         ?>
2.正则表达式
2.1 POSIX正则表达式语法
    中括号:查找一定范围内的字符
    量词:
        p+ 至少包含一个
        p* 零个或多个
        p? 零个或一个
        p{2} 包含2个
        p{2,3}包含2个或3个
        p{2,}至少包含2个
        p$ 结尾匹配
        ^p 匹配以p开头的字符串
        [^a-zA-Z]
        p.p 匹配任何字符p 接下来任意,再接下来p
        ^.{2}$ 匹配任何包含2个字符的字符串
        <b>(.*)</b> 匹配任何以<b>..</b>包含的字符串
        p(hp)* 匹配任何包含一个p,后面是一个或多个hp的字符串
    预定义字符串范围
        [:alpha:] ==> [A-Za-z]
        [:alnum:] ==> [A-Za-z0-9]
        [:cntrl:] 控制字符
        [:digit:] ==> [0-9]
        [:graph:] ascII 33-126字符
        [:lower:] ==> [a-z]
        [:punct:] 标点符号
        [:upper:] ==> [A-Z]
        [:space:] 空白
        [:xdigit:] ==> [a-fA-F0-9]
2.2 POSIX扩展
    ereg 区分大小写的搜索
    eregi 不区分大小写的搜索
    ereg_replace 区分大小写的替换
    eregi_replace 不区分大小写的替换
    split 区分大小写的分隔元素
    spliti 不区分大小写的分隔元素
    sql_regcase 转换为两个用中括号括起的字符
2.3 Perl风格
    表达式放在两个/中间
    修饰符:
        i 不区分大小写
        g 全局
        m 将字符串视为多行
        s 将一个字符串视为一行
        x 忽略注释和空白
        U 第一次匹配后停止
        上面的修饰符放在正则表达式后面,例如 /who/i
    元字符
        \A 只匹配字符串开头
        \b 匹配单词边界
        \B 匹配单词边界以外的字符
        \d 匹配数字
        \D 匹配非数字
        \s 匹配空白字符
        \S 匹配非空白字符
        [] 包含一个字符类
        () 包含一个字符分组或定义一个反引用
        $ 匹配行尾
        ^ 匹配行首
        . 匹配除换行以外的所有字符
        \ 引出下一个元字符
        \w ==> [a-zA-Z0-9]
        \W 无字母数字的字符
    Perl正则表达式函数
        array preg_grep(pettern,input[,flag]) 返回匹配pettern的数组
        int preg_match(pattern,str,...) 匹配返回true
        int preg_match_all(parrern,str,array parrern,...) 返回所有匹配的数组
        string preg_quote(str...) 把str中的特殊字符插入、
        mixed preg_replace() 替换
        mixed preg_replace_callback() 使用用户自定义函数替换
        array preg_split() 拆分
3 其他函数
    int strlen(str) 字符串长度
    int strcmp(str1,str2) 进行二进制比较
    int strcasecmp(str1,str2) 不区分大小写进行比较
    int strspn(str1,str2) 返回str1中包含str2中字符的第一部分长度
    int strcspn(str1,str2) 返回str1中包含str2中没有的字符的第一部分长度
    string strtolower(str1) 转换为小写
    string strtoupper(str) 转换为大写
    string ucfirst(str) 首字母大写
    string ucwords(str) 单词首字母大写
    string ul2br(str) 将\n换成<br />
    string htmlentities() 转换特殊字符
    string htmlspecialchars() 转换等价字符
    array get_html_translation_table() 将文本转换为HTML字符等价形式
    string strtr(string str,array repl) 把str中的字符转换为repl数组中对应的值
    string strip_tags(str,all_tags) HTML转换为纯文本
4 正则表达式的替代函数
    原因:正则表达式处理速度慢
    string strtok(str,tok) 根据tok解析str
    void parse_str(str,arr) 将str解析为各个变量
    array explode(sep,str...) 使用sep把str分隔成数组
    string implode(del,pie) 与explode,此函数把数组组合成字符串
    int strpos(str,substr,offset) 以区分大小写的方式找到substr第一次的出现
    int stripos(str,sub,offset) 以不区分大小写的方式找到sub第一次的出现
    int strrpos(str,sub,offset) 搜索sub最后一个出现
    mixed str_replace(occu,repl,str...) 以区分大小写的方式,搜occu替换成repl
    mixed str_ireplace(occu,repl,str..) 以不区分大小写的方式,搜occu替换成repl
    string strstr(str,occu) 返回第一个匹配occu剩下的字符
    string substr(str,start,len) 返回字符串指定的部分
    int substr_count(str,subs) 返回出现次数
    string substr_replace(..) 替换
5 填充和剔出字符
    string ltrim() 删除左空白
    string rtrim() 删除右空白
    string trim() 删除两侧空白
    string str)pad(str,len..._) 填充指定字符带指定长度
6 字符和单词计数
    mixed count_chars(str...) 字符计数
    mixed str_word_count(str...) 单词计数
  评论这张
 
阅读(5029)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017