文档章节

php 正则表达式界限符

斑驳
 斑驳
发布于 2013/06/21 09:29
字数 314
阅读 83
收藏 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

共有 人打赏支持
斑驳
粉丝 12
博文 55
码字总数 9051
作品 0
深圳
程序员
私信 提问
PHP中的另类奇葩 正则的讲解

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

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

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

学-无止境
2016/04/05
60
0
正则表达式之字符匹配

sharplook作为专业的日志采集分析系统,涉及的技术点,从后到前着实不少,内容也较为复杂。正则作为日志解析的手段,起着举足轻重的作用,在此小生将晦涩难懂的内容,拆解出来以便学习之用。...

lemon
2017/11/14
0
0
小蚂蚁学习PHP性能优化(2)--PHP语言级性能优化

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

嗜学如命的小蚂蚁
2015/09/23
75
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

没有更多内容

加载失败,请刷新页面

加载更多

hanlp在Python环境中的安装失败后的解决方法

Hanlp是由一系列模型与算法组成的javag工具包,目标是普及自然语言处理再生环境中的应用。有很多人在安装hanlp的时候会遇到安装失败的情况,下面就是某大神的分享的在python环境中安装失败的...

左手的倒影
18分钟前
0
0
【更新】Infragistics Ultimate UI for WPF v18.2(二):分类图

下载Infragistics Ultimate UI for WPF最新版本 Infragistics Ultimate UI for WPF是一款提供高速的网格和图表,轻松创建仿Office应用程序的WPF界面框架,从广度和深度两方面使得开发者在缩短...

电池盒
19分钟前
0
0
android沉浸式状态栏封装—教你玩出新花样

项目中我们有时候都要用的透明状态栏(这里也成沉浸式状态栏),今天介绍一个gyf-dev写的一个封装状态栏开源框架 效果图如下: 正文 从Android4.4开始,才可以实现状态栏着色,并且从5.0开始...

终端研发部
19分钟前
0
0
Java关键字之transient、native

transient Java中提供Serilizable接口,实现该接口的对象就可以被序列化。如果这个类的有些属性不需要被序列化,使用transient关键修饰字段即可。 native native关键字说明其修饰的方法是一个...

勇敢的飞石
21分钟前
0
0
canal 修改mysql数据后Java客户端无反应的问题解决方案

canal client例子: package com.study.canal;import java.net.InetSocketAddress;import java.util.List;import com.alibaba.otter.canal.client.CanalConnector;import com.al......

xtof
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部