原文: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
<?php
    //美元金额转换为数字

    $salary = preg_replace("/[\$\s,]/",'',$_REQUEST['salary']);
    //调用 preg_replace() 函数将用空字符串替换美元符号、所有空格和每个逗号,生成认为是整数的内容。
    if ( is_numeric( $salary ) ) {
            echo $salary;
    }
    else {
            echo "failure";
    }    
?>

转载于:https://www.cnblogs.com/tograce/archive/2009/07/19/1526461.html

掌握 PHP 中的正则表达式 二相关推荐

  1. python中关于正则表达式二

    2.2 反向引用 \1, \2... 表达式在匹配时,表达式引擎会将小括号 "( )" 包含的表达式所匹配到的字符串记录下来.在获取匹配结果的时候,小括号包含的表达式所匹配到的字符 ...

  2. 正则表达式 python 没有则不匹配_python中关于正则表达式二

    2.2 反向引用 \1, \2... 表达式在匹配时,表达式引擎会将小括号 "( )" 包含的表达式所匹配到的字符串记录下来.在获取匹配结果的时候,小括号包含的表达式所匹配到的字符 ...

  3. 【C#进阶二】C#中的正则表达式知识总结(字符转义/字符类/ 定位点/ 分组构造 /数量词/反向引用构造/替换构造/替代/正则表达式选项)(理论篇)

    文章目录 0. 正则表达式网站推荐 1.字符转义 2.字符类 3. 定位点 4. 分组构造 5.数量词 6.反向引用构造 7.替换构造 8.替代 9.正则表达式选项 正则表达式是对字符串操作的一种逻辑 ...

  4. VBA中的正则表达式(二)

    VBA中的正则表达式(二) --IgnoreCase属性 1. IgnoreCase属性 IgnoreCase属性有两个可选值,True或False. 2. IgnoreCase属性案例 Sub re ...

  5. 深入浅出C/C++中的正则表达式库(二)——Boost.Regex

    写在前面:本文是<深入浅出C/C++中的正则表达式库>系列的第二篇,如果对本文感兴趣,相信你也会对<深入浅出C/C++中的正则表达式库--GNU Regex Library>感 ...

  6. Swift中使用正则表达式

    Swift中使用正则表达式 环境:swift3 xcode8 一.什么时候我们需要使用正则表达式 1.判断一些字符是否符合所需要求: 2.用于检索文本中所需字段. 二.正则表达式的语法 正则表达式的创 ...

  7. SQL Server中执行正则表达式

    总体方案:写function,再执行update语句. 一.查询函数 -- ============================================= -- Author: <l ...

  8. Perl 中的正则表达式

    9 Perl 中的正则表达式正则表达式的三种形式 正则表达式中的常用模式 正则表达式的 8 大原则 正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握 ...

  9. [Python]网络爬虫(七):Python中的正则表达式教程(转)

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

最新文章

  1. oracle10个,OracleDBA新手经常碰到的10个Oracle错误
  2. [DB那些事]数据库加密
  3. 百度超级链XChain(7)数据模型
  4. RAC IP 地址修改
  5. 魅族android n内测报名,不再万年Android 5.0! Flyme安卓N内测招募开启
  6. selenium java封装_selenium2.0的初步封装(java版本)
  7. 确保Kubernetes环境安全的3种最佳实践
  8. android中多线程与ui,Android UI线程和非UI线程
  9. ie6、ie7下overflow失效
  10. TCP/IP 选项TcpTimedWaitDelay设置
  11. GNS3中下载路由器
  12. 图像处理之图像复原[逆滤波、维纳滤波、约束最小二乘法、Lucy-Richardson和盲解卷积复原]
  13. RecyclerView实现广告轮播图(一)
  14. 买iPhone担心买到翻新机?教你一招,轻松鉴别各个版本
  15. 普通路由器改4g路由器_4G工业路由器物联卡批发价格是多少?良心厂家推荐
  16. 正则表达式——同时验证座机号和手机号
  17. 大多数人都自我嫌弃而不自知
  18. March 4 2017 Week 10 Saturday
  19. 第五讲 Virtual Box 安装(2)
  20. java后台判断请求来自移动端访问还是PC端访问

热门文章

  1. linux内核tor03,Linux内核x86架构引导协议4(翻译)
  2. Perl调试器的用法
  3. linux内核网络协议栈--架构分析(十八)
  4. 上高职业技术学校计算机学几年,上高职业技术学校2021年有哪些专业
  5. es java聚合查询只有10_关于在elasticSearch中使用聚合查询后只显示10个bucket的问题...
  6. Orecle基本概述(2)
  7. 第十一周学习总结--助教
  8. subprocess 模块
  9. mongodb的增、删、改、插的一个实例
  10. Select模型原理