文档章节

php 正则表达式界限符

斑驳
 斑驳
发布于 2013/06/21 09:29
字数 314
阅读 73
收藏 0

问题:正则表达式“|<[^>]+>(.*)</[^>]+>|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

本文转载自:http://blog.sina.com.cn/s/blog_675879000100j4wj.html

共有 人打赏支持
斑驳
粉丝 11
博文 55
码字总数 9051
作品 0
深圳
程序员
小蚂蚁学习PHP性能优化(2)--PHP语言级性能优化

接上篇 3. 优化点:尽可能少的使用魔法函数 情况描述:PHP提供的魔法函数,性能不佳 为什么呢?为了给PHP程序员省事,PHP语言为此做了很多 好的方法:尽可能规避使用PHP魔法函数,需要使用的...

嗜学如命的小蚂蚁
2015/09/23
75
0
PHP中的另类奇葩 正则的讲解

一,什么是正则: 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,...

君满楼001
2017/11/16
0
0
Java编程之正则表达式

什么是正则表达式? 正则表达式就是人为的定义一些规则,希望计算机按照我们制定的规则执行。正则表达式主要用于操作字符串 java.util.regex包主要包括以下三个类: Pattern类: Matcher类:...

学-无止境
2016/04/05
60
0
php正则表达式

http://www.cnblogs.com/baochuan/archive/2012/03/12/2391135.html http://www.jb51.net/article/36172.htm http://www.jb51.net/article/75004.htm 前言 正则表达式是烦琐的,但是强大的,......

污湖洞主
2017/04/21
0
0
【PHP正值表达式教程】

正则表达式简介 在某些应用中,往往有时候需要根据一定的规则来匹配(查找)确认一些字符串,如要求用户输入的 QQ 号码为数字且至少 5 位。用于描述这些规则的工具就是正则表达式。 最简单的...

junwong
2012/03/23
142
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
0
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
21
5
centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部