• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >正则表达式 > 浅谈正则表达式(Regular Expression)

浅谈正则表达式(Regular Expression)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了regular expression,c regular expression,expression,expression是什么意思,expression可数吗等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、什么是正则表达式?

简单的说:正则表达式(Regular Expression)是一种处理字符串匹配的语言;

正则表达式描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串,对匹配到的子串进行“取出”或“替换”操作。

二、正则表达式的应用

正则表达式在实际的开发过程中非常实用,能够快速解决一些复杂的字符串处理问题,下面我对正则表达式的应用做一些简单分类:

第一种:数据验证
比如,你要验证一个字符串是否是正确的EMail,Telphone,Ip等等,那么采用正则表达式就好非常方便。

第二种:内容查找
比如,你要抓取一个网页的图片,那么你肯定要找到<img>标签,这时候用正则表达式就可以精准的匹配到。

第三种:内容替换
比如,你要把手机号码中间四位隐藏掉变成这种模式,123****4567,那么采用正则表达式也会非常方便。

三、正则表达式有哪些内容

下面我将简单的介绍一下正则表达式:

1、 正则表达式的几个重要的概念
•子表达式:在正则表达式中,如果使用"()"括起来的内容,称之为“子表达式”
•捕获:子表达式匹配到的结果会被系统放在缓冲区中,这个过程,我们称之为“捕获”
•反向引用:我们使用"\n",其中n是数字,表示引用之前某个缓冲区之间的内容,我们称之为“反向引用”
2、数量限定符
•X+     表示:1或多个
•X*     表示:0或多个
•X?     表示:0或1个
•X{n}    表示: n个
•X{n,}    表示:至少n个
•X{n,m}   表示:n至m个,贪婪原则,会尽可能匹配多个;如果在后面加个?,则为非贪婪原则
注:X表示要查找的字符

3、 字符限定符
•\d   表示:匹配一个数字字符,[0-9]
•\D  表示:匹配一个非数字字符,[^0-9]
•\w  表示:匹配包括下划线在内的单词字符,[0-9a-zA-Z_]
•\W  表示:匹配任何非单词字符,[^0-9a-zA-Z_]
•\s  表示:匹配任何空白字符,空格、回车、制表符
•\S  表示:匹配任何非空白字符
•.    表示:匹配任何单个字符
此外还有以下几种:

范围字符:[a-z]、[A-Z]、[0-9]、[0-9a-z]、[0-9a-zA-Z]
任意字符:[abcd]、[1234]
非在内的字符:[^a-z]、[^0-9]、[^abcd]

4、 定位符
•^  表示:开头标识
•$  表示:结尾标识
•\b   表示:单词边界
•\B  表示:非单词边界
5、转义符
•\   用于匹配某些特殊字符
6、选择匹配符
•|   可以匹配多个规则
7、特殊用法
•(?=) : 正向预查:匹配以指定内容结束的字符串
•(?!) : 负向预查:匹配不是以指定内容结束的字符串
•(?:) : 不把选择匹配符的内容放到缓冲区

四、正则表达式在Javascript下的使用方法

在Javascript下使用正则表达式,有两种方法:

第一种方法:使用RegExp类
提供的方法有:

•test(str): 在字符串匹配是否有匹配模式的字符串,返回true/false
•exec(str): 返回匹配模式匹配到的字符串,如果有,返回相应的字符串,无,返回null;
        //如果正则表达式中有子表达式,使用exec方法时

        //返回的是:result[0] = 匹配结果 , result[1] = 子表达式1的匹配结果 ……

第二种方法是:使用String类
提供的方法有:

•search : 返回匹配模式的字符串出现的位置,如果没有,返回-1
•match : 返回匹配模式匹配到的字符串,如果有,返回数组,无,返回null
•replace : 将匹配模式匹配到的字符串进行替换
•split : 将字符串已匹配模式为分隔符进行字符串分隔,返回数组

五、正则表达式在PHP下的使用方法

PHP下有两种使用正则表达式的函数:

第一种是:Perl正则表达式函数
提供的方法有:

•preg_grep --  返回与模式匹配的数组单元
•preg_match_all -- 进行全局正则表达式匹配
•preg_match -- 进行正则表达式匹配
•preg_quote -- 转义正则表达式字符
•preg_replace_callback -- 用回调函数执行正则表达式的搜索和替换
•preg_replace -- 执行正则表达式的搜索和替换
•preg_split -- 用正则表达式分割字符串
第二种是:POSIX正则表达式函数
提供的方法有:

•ereg_replace -- 替换正则表达式
•ereg -- 正则表达式匹配
•eregi_replace -- 不区分大小写替换正则表达式
•eregi -- 不区分大小写的正则表达式匹配
•split -- 用正则表达式将字符串分割到数组中
•spliti --  用正则表达式不区分大小写将字符串分割到数组中
•sql_regcase --  产生用于不区分大小的匹配的正则表达式 

六、总结

正则表达式就是我们实现某个功能的一个工具,这个工具:

1、功能强大
正则表达式中各种限定符的不同组合会实现不同的功能,有时实现一个复杂的功能需要编写很长的正则表达式,如何能精准匹配,这就要考验一个程序员的能力了。

2、简洁方便
平常我们在进行字符串内容查找,只能进行某个特定字符串的查找,但是正则表达式可以帮助我们进行模糊查找,更快更方便,仅仅需要一个正则表达式串。

3、各种语言基本上都支持
目前如JAVA、PHP、Javascript、C#、C++等主流语言都支持正则表达式。

4、学习很简单,应用很高深
学习正则表达式很快也很简单,但是如何在实际开发中编写出高效地,精准地正则表达式,还是需要长时间的尝试和积累。

如果想快速的入门推荐查看这篇文章:

正则表达式30分钟入门教程

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 共享日常收集JS正则表达式(JavaScript regular expression)
  • 浅谈正则表达式(Regular Expression)
  • 正则表达式基础教程 regular expression第1/2页

相关文章

  • 2017-05-11精通JS正则表达式(推荐)
  • 2017-05-11PHP 正则 email语句详解
  • 2017-05-11js正则表达式验证URL函数代码(方便多个正则对比)
  • 2017-05-11经典Javascript正则表达式[优质排版]
  • 2017-05-11简单的用js实现过滤多余字符的正则表达式
  • 2017-05-11去除内容中的html
  • 2017-05-11看到一个JS正则的题
  • 2017-05-11正则表达式实现匹配连续数字的方法
  • 2017-05-11js正则表达式常用函数详解(续)
  • 2017-05-11最常用的PHP正则表达式收集整理

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • PHP 正则表达式效率 贪婪、非贪婪与回溯分析(推荐)
    • 编写采集规则的好帮手—RegexBuddy 下载,正则不再难
    • PHP 正则表达式的几则使用技巧
    • javascipt 正则表达式英文版
    • 获取网址路径的正则
    • Java正则表达式提取字符的方法实例
    • 匹配中文汉字的正则表达式介绍
    • js正则解析URL参数示例代码
    • JS 正则表达式判断各个浏览器代码详解
    • 关于HTML及UBB标记的闭合

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有