掌握 PHP 中的正则表达式 二

原文:http://www.ibm.com/developerworks/cn/opensource/os-php-regex2/

在上回,接触了常见 regex 操作符,这里将介绍一些特殊  regex 操作符

1、括号  ()  的功能;
2、子模式限定符 ?:    :它的功能是禁用捕捉;
3、
regex 末尾的 i  修饰语    :模式内的所有匹配都不区分大小写;
    regex ((?i)edu)  :它只表示子模式不分大小写;  

   /---------------/i    :它表示整个模式不分大小写;
4、子模式修饰词是 (?x)    :另一个有用的子模式修饰词它允许您在子模式中嵌入空白;
  ((?x) edu | com | info) :(edu|com|info) 相同
  / ... /x       :  在整个 regex 中嵌入空白和注释
5、子模式修饰词是 ?<=  :即向左查找(向后查找
6、子模式修饰词是 ?=   :即向右查找(向前查找

实例练习

 例1
/[-a-z0-9]+(?:\.[-a-z0-9]+)*\.(?:com|edu|info)/i
(?:\.[-a-z0-9]+)*   将匹配零个或多个字符串实例(例如 “.ibm”)
\.(?:com|edu|info)   表示句点,后接字符串 comeduinfo 中的任意一个
例2
嵌入空白和注释
$matches = preg_grep
            
"/
              [- a-z 0-9]+            # machine name
              (?: \. [- a-z 0-9]+)*   # subdomains
              \. (?: com | edu | info)# domain
             /xi
", $words );

其它应用
   regex 的另一个应用是格式化、规范化或提高数据的可读性。格式化不是使用 regex 查找和提取文本,而是使用 regex 查找并在正确位置插入文本。

如下列,将美元金额转换为数字
Code


posted @ 2009-07-19 11:12  尚远  阅读(298)  评论(0编辑  收藏  举报