正则表达式详解

点号(.)是元字符,匹配除换行符以外的任意字符。

星号(*)是元字符,代表数量。 点号星号连在一起就是匹配任意数量的不包括换行符的字符。 \s匹配任意空白字符。 \b匹配单词开始或者结束。 []匹配括号中的任意一个字符。 电话正则: 0\d{2}-\d{8} {5-18}错误,应该{5,18}匹配5至18位 匹配标题 <title>.*<\/title> {n,}//重复n次或者n次以上 [aesdfs]//匹配任意一个字符 [.?!]//匹配标点符号 c[aou]t//匹配cat,cot,cut三个单词,而不匹配caout 下面是一个纠正我错误理解的例子: $reg = "/[aby\}]/"; }是个元字符,所以使用\}表示},但实际上这个转义却是多余的,因为}在字符组中,无法发挥意义,不会引起歧义,所以不需要转义。那么字符串中有\会不会被当作普通字符呢?实际没有没有被匹配。如果需要匹配需要这样写: $reg = "[}aby\\]"; 下面的例子: c[aou?*)]t // 其中?和*号都不需要转义。原因字符组里匹配单个字符。 电话号码多种格式匹配: \(?0\d{2}[)-]?\d{8} 可以匹配到:(099)88888888 088-99999999 09999999999 [^a] 匹配非a的任意字符 \S 不包含空白符的字符串 匹配链接地址: <a[^>]+> <a href="http://www.beijingqingnian.com">北京青年</a> 结果:<a href="http://www.beijingqingnian.com"> 分支概念: 例如:要匹配 cat,hat,fat,toat的正则表达式 分析前面匹配可以是c,h,f,to,然而[]只能匹配单个字符,此时就可以用分支形式: (c|h|f|to)at 其中括号中的表达式视作一个整体,"|"表示分支,对于单字符情况,字符组效率更高。 电话号码: \(0\d{2}\)[- ]? \d{8}|0\d{2}[- ]? \d{8} 注意:匹配分支条件时,从左向右匹配,如果满足某个条件就不会考虑其他条件了。 例如:\d{5}|\d{5}-\d{4} 只匹配5位邮编以及9位邮编的前5位 分组应用 匹配IP:(\d{1,3}\.){3}\d{1,3} 严格来讲这个表达式是有问题的,因为每个数字不能大于255 ((2[0-4]\d|25{\[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-08-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android知识点总结

1-VI--随机数据生成

1094
来自专栏大数据钻研

JavaScript 知识点整理

JavaScript是按照ECMAScript标准设计和实现的,后文说的JavaScript语法其实是ES5的标准的实现。 先说说有哪些基础语法? 最基础语法有...

2025
来自专栏nummy

python抽象基类abc

python中并没有提供抽象类与抽象方法,但是提供了内置模块abc(abstract base class)来模拟实现抽象类。

631
来自专栏前端桃园

ES6之块级作用域

1314
来自专栏owent

POJ 3267 The Cow Lexicon 解题报告

1.可以令 deleteNum[pos]为输入字符串在pos处需要删除的最少字符数量;

582
来自专栏糊一笑

正则表达式学习笔记

正则表达式 1. 使用正则 创建正则表达式有两种方式,一种是以字面量方式创建,另一种是使用RegExp构造函数来创建。 var expression = / p...

2604
来自专栏诸葛青云的专栏

C语言入门基础学习函数?来看我就告诉你!

在前面我们已经讲过了一些简单的函数,如程序的主函数main()、标准输出函数printf()。在C语言中,大多数功能都是依靠函数来实现的。But,你知道什么是函...

893
来自专栏从流域到海域

Python 装饰器(Decorator)

引入 如果你学过Java的UML设计模式,那么你一定对Decorator Pattern和你熟悉,Decorator Pattern即装饰器模式(也译修饰器模式...

1969
来自专栏算法channel

Numpy|需要信手拈来的功能

这是一篇Numpy中经常使用的API的不完全总结,欢迎补充和指导。 01 类型转化 凡是使用Numpy的小伙伴,无不遇到类型转化这个问题,并且经常需要通过调试...

3073
来自专栏Java技术分享圈

杨老师课堂_Java教程第四篇之数组运用

今天主要是讲解以下知识点: 1、流程控制语句switch 2、数组 3、王者荣耀英雄随机出战案例

534

扫码关注云+社区