为什么80%的码农都做不了架构师?>>>   

问题:正则表达式“|<[^>]+>(.*)</[^>]+>|U”里的一对竖线“|”和 U 分别代表什么?

答案:一对竖线“||”是正则表达式的界限符。大家最熟悉的的界限符应该是一对斜杠‘’//‘’,如“/^[a-z]+$/”,实际上在 PHP 语法中,正则表达式的界限符可以用任何其他字符来代替斜杠,如:

<?php
if(preg_match('/<[^>]+>(.*)<\/[^>]+>/U', '<a href="http://www.baidu.com">Go</a>')) { // 常见的写法,表达式中的斜杠要用 “\” 转义一下echo 'match!!!<br />';
}if(preg_match('|<[^>]+>(.*)</[^>]+>|U', '<a href="http://www.baidu.com">Go</a>')) { // 本文的写法echo 'match!!!<br />';
}if(preg_match(',<[^>]+>(.*)</[^>]+>,U', '<a href="http://www.baidu.com">Go</a>')) { // 用逗号代替斜杠echo 'match!!!<br />';
}if(preg_match('#<[^>]+>(.*)</[^>]+>#U', '<a href="http://www.baidu.com">Go</a>')) { // 用井号代替斜杠echo 'match!!!<br />';
}// 全部输出match!!!

不用斜杠作为正则表达式的好处是:正则表达式中斜杠‘/’不用转义‘\/’。

修饰符 U 的作用和问号“?” 类似,用于设置"贪婪模式"。

正则表达式默认是贪婪的,比如你上面的 (.*)<,不贪婪的情况下遇到第一个 < 就停止了,贪婪的情况下让 . *匹配所有内容,直到最后一个 < 出现。

更多的 PHP 正则表达式修饰符请参考这篇博文:http://my.oschina.net/banbo/blog/308073

转载于:https://my.oschina.net/banbo/blog/139109

php 正则表达式界限符相关推荐

  1. python正则表达式修饰符_python正则表达式,看完这篇文章就够了...

    今天讲什么? 今天以为大学同学微信聊,说最近在看我的公众号,她是国企汽车制造业的,但也要用python进行数据分析...之前看了往期的python字符串操作内容,里面说到了正则表达式,想学习一下... ...

  2. 28Python正则表达式、正则表达式对象、正则表达式修饰符、表达式模板、表达式实例、match函数、search方法、检索和替换、repl、compile、findall等

    28Python正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. ...

  3. 第11.15节 Python正则表达式转义符定义的特殊序列

    一. 引言 在前面<第11.13节 Python正则表达式的转义符"\"功能介绍>介绍了正则表达式转义符'\',只不过当时作为转义符主要是用于在正则表达式中表示元字符自 ...

  4. c语言字符常量的界限符,关于C语言的字符常量和符号常量

    C语言的字符常量和符号常量 符号常量 字符常量 符号常量 #define指令可以把符号名定义为一个特定的字符串: #define 名字 替换文本 在该定义之后,程序中出现的所有#define中定义的名 ...

  5. php正则表达式修正符,深入解析PHP正则模式修正符

    今天我们就向大家具体讲解了PHP正则模式修正符的相关概念,希望对大家有所帮助. 模式修正符:模式修正符是标记在整个模式之外的.模式修正符中有几个常用的,分别是I.m.s.U,下面我们来具体了解一下. ...

  6. php限定符实例,PHP正则表达式限定符说明

    + 前导字符必须在目标对象中连续出现1次或1次以上 * 前导字符必须在目标对象中连续出现0次或0次以上 ? 前导字符必须在目标对象中连续出现0次或1次 . 匹配换行符之外的所有字符 \s 匹配单个空格 ...

  7. javascript正则表达式(语法以及正则表达式修饰符)

    正则表达式(英语:Regular Expression,在代码中常简写为regex.regexp或RE)使用单个字符串来描述.匹配一系列符合某个句法规则的字符串搜索模式. 搜索模式可用于文本搜索和文本 ...

  8. js之正则表达式修饰符/ig

    2019独角兽企业重金招聘Python工程师标准>>> 正则表达式中/i,/g,/ig,/gi,/m的区别和含义 /i (忽略大小写) /g (全文查找出现的所有匹配字符) /m ( ...

  9. 正则表达式1-字符串的故事

    为什么需要正则表达式,他虎在哪 想象一下在网页上我们需要用户输入邮政编码,比如我的家乡安徽省马鞍山当涂县 243100 邮政编码是由6个数字组成的.我们如何判断用户输入的是合法的邮政编码呢?如果没有正 ...

最新文章

  1. 深挖数据价值 阿里云栖开年大会报道
  2. 如何设计 Web App 应用架构?「两分钟了解 IOING」
  3. disruptor框架为什么不流行_Java并发编程框架Disruptor
  4. python进度条 pyqt_python如何通过pyqt5实现进度条
  5. linux的less命令如何退出,Linux命令详解之less命令
  6. leetcode145. 二叉树的后序遍历
  7. Java8 中的 Optional
  8. Linux学习笔记---使用BusyBox创建根文件系统(四)
  9. 几款Linux系统漏洞扫描、评估工具简介
  10. HTML5 FileAPI读取实例---(一)
  11. 移动终端的应用杀掉进程后,接收消息启动应用的简要技术说明
  12. LayoutInflater拦截View创建,自定义Resource对象
  13. 牛逼!SpringBoot+Vue企业级支付系统!附源码!
  14. JavaAndroid开发视频教程汇总
  15. FFmpeg 视频添加水印
  16. PPT——快速制作图表(快速插入)
  17. VR/AR/MR/CR/XR概念及应用
  18. sprintf函数与strcpy和strcat 用sprintf函数进行字符串某些操作 ————— 开开开山怪
  19. 817考研c语言程序设计,2018年沈阳航空航天大学计算机院817C程序设计考研核心题库...
  20. 电影《肖申克的救赎》给你最深的感受是什么?

热门文章

  1. ProE官方网站系列视频教程
  2. Scala入门与进阶(五)- Scala数组
  3. 【Git】Git 本地的撤销修改和删除操作
  4. 【转】K-SVD简述——字典学习,稀疏编码
  5. Oracle基于Linux平台的虚拟化与云计算战略
  6. 商务智能 “软肋”何在?
  7. CSS媒体查询 @media
  8. 异常处理 课后作业2
  9. JAVA设计模式初探之——装饰者模式
  10. iOS开发之UIMenuController的基本使用