正则表达式

用来描述一串字符串的字符串

定界符

除了字母数字反斜线之外的所有字符都可以

/ / (强制使用)

| |

!!

原子

在自然界中的最小单位 叫做原子

正则中的原子:可以打印的字母,数字,符号,不可打印的字符 \n \r \t

Windows中有\n和\t      unix中只有\n

\t 横向跳到下一制表位

有特殊作用的符号作为原子使用需要加转义符  + * . ? [] () {}   /

直接使用一些代表范围的原子 (重要)

\d 数字

\D 非数字

\w 任意一个字符 字母(大写 小写) 数字 下划线

\W 非字符

\s 空白 空格 换行 TAB ....

\S 非空白

自定义原子列表

[09] 0或9 注意:中间没有逗号

09 是两个原子 [09] 是一个原子

[0-9] 表示 范围----所有数字 [a-zA-Z]

[3|t]    表示   匹配3或t

\d [0-9]

\D [^0-9]

\w [a-zA-Z0-9_]

\s [\n\t\r\f\v]

[^0-9] 表示 非数字

注意:^在括号中,并且紧挨左边的中括号,才表示取反。

.(点)

默认情况下,代表除换行符之外的任意字符 [^\n]

原字符

修饰原子的,不能单独使用

{n,m} 从n到m个 最少有n个 最多有m个

注意:m和n中间有逗号!

{n,} 至少有n个

{0,m} 至多有m个

* 表示前面的原子可以出现 0次 1次 或 多次

+ 表示前面的原子可以出现 1次 或 多次

? 表示前面的原子可以出现 0次 或 1次

* {0,}

+ {1,}

? {0,1}

| 表示或 优先级很低

\b 表示边界

\B 表非边界

//“有没有” 的重点

^ 写在第一个原子的前面 代表以第一个原子开始

$ 写在后一个定界符的左边 表示以XX结束

圆括号的使用

1.改变优先级

2.作为一个大原子使用

3.作为子模式使用 //“是不是” 的重点

(?:.*)括号中的?: 取消子模式

反向引用

/(\d{4})([#-])\d{2}\\2\d{2} \d{2}:\d{2}:\d{2}/

贪婪匹配

禁止贪婪匹配:.*?.+?

优先级

\ 转义符优先级最高

() (?:) []

* + ? {}

^ $

| 或的优先级 最低(用或的选项应该用()括起来不能用[])

模式修正符

i 不区分大小写

s 将字符串视为单行 .可以匹配所有字符

U 禁止贪婪匹配 U和?会抵消 (不要同时使用)

个人认为:

有^和$的是匹配一个字符串从头到尾的匹配,如:注册验证。叫“是不是”。验证是不是我们要的格式。

而没有^和$时,为“有没有”,顾名思义,就是字符串里有没有要搜的正则

 

\r \n   在windos系统中用于匹配字符窜中是否由回车换行出现

\n  在Linux系统中用于匹配字符窜中是否由回车换行出现

Preg_replace()  的应用,返回的是字符串,不是数组  (注意:$3,${1}1)

<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${3}-$1-${2}';
echo preg_replace($pattern, $replacement, $string);
?>

结果:

2003-April-15

 

 

Preg_match()

Preg_match_all()

 

Ip ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

 

 

php 正则 常用基础的更多相关文章

  1. Nginx 常用基础模块

    目录 Nginx 常用基础模块 Nginx日志管理 nginx日志切割 Nginx目录索引 Nginx状态监控 Nginx访问控制 Nginx访问限制 Nginx 请求限制配置实战 Nginx Loc ...

  2. C#-正则,常用几种数据解析-端午快乐

    在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧 ...

  3. HTML常用基础标签

    HTML常用基础标签 带有语义的标签 <em> </em> 强调 <strong> </strong> 比em强调级别高 <abbr> &l ...

  4. Linux常用基础命令整理:关机命令、查看目录下文件命令等

    Linux常用基础命令整理:关机命令.查看目录下文件命令等 整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能Ctrl+c按键-- ...

  5. Python3.x:常用基础语法

    Python3.x:常用基础语法 1,if else语句: 不执行if内的语句,需要用:pass if i>2: #跳过不执行 pass else: print("i= %s" ...

  6. Linux基础(03)、常用基础指令和操作

    目录 一.什么是Linux 二.常用基础指令 2.1.vi编辑 2.2.Linux文件类型 2.3.常用指令:增.删.改.查.其他 三.Linux的目录和权限 3.1.目录 3.2.权限 3.3.修改 ...

  7. es6常用基础合集

    es6常用基础合集 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得 ...

  8. CentOS常用基础命令大全

    这篇文章主要介绍了CentOS常用基础命令大全,学习centos的朋友需要掌握的知识,需要的朋友可以参考下 1.关机 (系统的关机.重启以及登出 ) 的命令shutdown -h now 关闭系统(1 ...

  9. java常用基础(一)

    Java常用基础(一) 原文写于2017-12-02 输入输出 //输入 Scanner in = new Scanner(new BufferedInputStream(System.in)); i ...

随机推荐

  1. 忍不住记录下小型的CMDB系统

  2. Spring系列之AOP实现的两种方式

    AOP常用的实现方式有两种,一种是采用声明的方式来实现(基于XML),一种是采用注解的方式来实现(基于AspectJ). 首先复习下AOP中一些比较重要的概念: Joinpoint(连接点):程序执行 ...

  3. [UML]UML系列——包图Package

    系列文章 [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列——类图Class   ...

  4. PHP流式上传和表单上传(美图秀秀)

    最近需要开发一个头像上传的功能,找了很多都需要授权的,后来找到了美图秀秀,功能非常好用. <?php /** * Note:for octet-stream upload * 这个是流式上传PH ...

  5. Linux串口中的超时设置

    在Linux下使用串口通信时,默认的阻塞模式是不实用的.而采用select或epoll机制的非阻塞模式,写代码有比较麻烦.幸好Linux的串口自己就带有超时机制. Linux下使用termios.h中 ...

  6. css3径向渐变详解-遁地龙卷风

    (-1)写在前面 我用的是chrome49,如果你用的不是.可以尝试换下浏览器前缀.IE在这方面的实现又特例独行了.不想提及-,这篇是为后续做准备. (0)快速使用 background-image: ...

  7. linux常用命令-用户管理命令

    useradd 用户名 passwd 用户名:修改该用户的密码 groupadd 组名 who: 查看现在登录了几个用户,得到的信息含义如下 登录用户名 登录终端 登录时间 登录终端的IP地址(如果没 ...

  8. python的一道面试题 __call__ 的使用.

    class Person: def __init__(self): self.age = 1 def __call__(self, *args, **kwargs): print 'age', sel ...

  9. ++i vs i++

    [分析] i++与++i哪个效率更高? (1)在内建数据类型的情况下,效率没有区别: (2)在自定义数据类型Class的情况下,++i效率更高! 自定义数据类型的情况下:++i返回对象的引用:i++总 ...

  10. javascript删除数组某个元素

    1.首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引 Array.prototype.indexOf = function(val) { for (var i = 0; ...