正则表达式简介

正则表达式Regular Expression,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。代表性书籍《正则表达式之道》里面有详细论述,本书籍为个人查阅之用力求精简、明确、方便使用,只对必要概念做补充性说明。

界定符

正则表达式本身即是一个字符串,需要一组界定符区分出哪里是正则表达式的内容。//和##和{},都是界定符,在PHP语言中用//作为正则表达式的界定符。一般不建议用{}做界定符,因为{}本身也可以是正则表达式的元字符,容易混淆。

元字符

| 匹配两个或者多个分支选择
[] 匹配方括号中任意的原子
[^] 匹配方括号中原子之外的任意字符,相当于[]的非
. 匹配除换行符之外的任意一个字符
\d 匹配任意一个十进制的数字,即[0-9]
\D 匹配任意一个非十进制的数字,即[^0-9]
\s 匹配任意一个不可见原子(空白符),即[\f\n\r\t\v]
\S 匹配任意一个非不可见原子(空白符),即[^\f\n\t\v]
\w 匹配任意一个数字、字母或者下划线,即[0-9a-zA-Z_]
\W 匹配任意一个非数字、字母、或者下划线,即[^0-9a-zA-Z_]

量词(匹配次数)

{n} 前面原子恰好重复n次
{n,} 前面原子重复>=n次
{n,m} 前面原子重复大于等于n次,小于等于m次
*重复0次或者更多次
+重复1次或者更多次
?重复0次或者1次

边界控制(匹配位置)

() 匹配括号内的原子集合作为一个原子看待
\b 匹配单词的开始或者结束位置
^ 匹配字符串的开始位置
$ 匹配字符串的结束位置
\G 匹配上一个匹配的结尾(本次匹配的开始)
\A 匹配字符串开头(类似^,但是不受处理多行选项的影响)
\Z 匹配字符串的结尾或者行尾(不受处理多行选项的影响)
\z 匹配字符串的结尾(类似$,但是不受处理多行选项的影响)

修正模式

贪婪匹配,匹配结果存在歧义时取其长(PHP中为默认模式)
懒惰匹配,匹配结果存在歧义时取其短
U 修正为懒惰模式
i 忽略英文字母大小写
x 忽略空白符
s 让元字符 . 匹配任意字符包括换行符
e 如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串

转义

正则中的元字符都要加\进行转义:
$ ( ) * + . [ ] ? \ ^ { } |

非空

.+

大陆手机号

1[34578]\d{9}

email

^\w+(.w+)*@\w+(.w+)+$

URL

^(https?://)?(\w+.)+[a-zA-Z]+$

php正则表达式简介的更多相关文章

  1. MySql 正则表达式简介及使用

    MySql正则表达式简介及使用 by:授客 QQ:1033553122 简介 正则表达式描述了一组字符串,该字符放置于REGEXP工具后面.作用是将一个正则表达式与一个文本串进行比较. 最简单的正则表 ...

  2. 【转】正则表达式简介及在C++11中的简单使用教程

    正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分,不仅如此,它还支持了6种不同 ...

  3. JS的正则表达式简介

    1.JS的正则表达式 1.1 简介 JS的正则表达式比较简单,总体上只分为两个功能:一个是test——用于匹配字符串是否符合规定的正则表达式规则:另外一个是exec——用于获取匹配到的数据. 1.2 ...

  4. Java连载74-字符串常用方法、正则表达式简介

    一.字符串相关的常用方法简介​ package com.bjpowernode.java_learning; ​ public class D74_1_StringCommonMethod { pub ...

  5. Python中正则表达式简介

    目录 一.什么是正则表达式 二.正则表达式的基础知识 1. 原子 1)普通字符作为原子 2)非打印字符作为原子 3) 通用字符作为原子 4) 原子表 2. 元字符 1)任意匹配元字符 2)边界限制元字 ...

  6. 【循序渐进学Python】12.Python 正则表达式简介

    正表达式就是一段匹配文本片段的模式,在Python 中 re 模块包含了对正则表达式(regular expression)的支持. 1. 正则表达式的基本概念 1. 通配符 点号( . )可以匹配换 ...

  7. javascript正则表达式简介

      javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String ...

  8. Ruby自学笔记(四)— 数组,Hash,正则表达式简介

    今天学习的是数组和Hash,数组在很多编程语言中都能常常用到. 数组: 数组是存储数据的一种容器,在Ruby中,数组中存储的数据可以是任何类型的数据:这和JAVA不同,在JAVA中,数组是存储同一类型 ...

  9. Python re 正则表达式简介

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

随机推荐

  1. do{...}while(0)的妙用(转)

    源:http://www.cnblogs.com/lizhenghn/p/3674430.html 在学习第一门编程语言时,就已经介绍了顺序分支.条件分支.循环分支.比如循环分支有for.while. ...

  2. hibernate 使用sql 查询(setResultTransformer)

    使用方法举例如下: public List findByOid(Object oid) {  log.debug("finding all WatershedAnalyse instance ...

  3. 51nod 区间中第K大的数

    区间中第K大的数 基准时间限制:1 秒 空间限制:131072 KB  一个长度为N的整数序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有数中,第K大的数是多少. 例如: 1 7 6 ...

  4. apache2.2.25+mod_jk-apache-2.2.2.so+apache-tomcat-7.0.56集群

    1.安装httpd-2.2.25-win32-x86-no_ssl.msi 按默认安装路径,我电脑如果自定义的话安装不了 2.下载mod_jk-apache-2.2.2.so 3.下载tomcat 我 ...

  5. Ext中包含了几个以get开头的方法

    Ext中包含了几个以get开头的方法,这些方法可以用来得到文档中DOM.得到当前文档中的组件.得到Ext元素等,在使用中要注意区别使用.1.get方法get方法用来得到一个Ext元素,也就是类型为Ex ...

  6. 轻量级别的Cache和反向代理软件---Varnish

    1.Varnish描述 1.1 Varnish的结构与特点 Varnish是一个轻量级别的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点: 基于内存进行缓存,重启后 ...

  7. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  8. 如何编译生成 dll

    原文:http://blog.csdn.net/qianchenglenger/article/details/21599235 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[ ...

  9. Xcode7 新添旧版模拟器方法

    http://blog.csdn.net/xiaoluodecai/article/details/48649697 更新了最新的Xcode后,总是仅保留最新的模拟器,如iOS9.0,如果此时想添加以 ...

  10. Java将List/JavaBean转成Json

    import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.util.List; /**  *  ...