首页
网页制作
网络编程
脚本专栏
数据库
网站运营
网络安全
平面设计
CMS教程
搜索
建站极客
网络编程
正则表达式
正文
正则表达式概述 什么是正则表达式 .
所属分类:
网络编程
/
正则表达式
阅读数: 1390
收藏 0
赞 0
分享
正则表达式概述
正则表达式在程序设计语言中存在着广泛的应用,特别是用来处理字符串。如匹配字符串、查找字符串、替换字符串等。可以说,正则表达式是一段文本或一个公式,它是用来描述用某种模式去匹配一类字符串的公式,并且该公式具有一定的模式。
本小节将介绍正则表达式的基本概念、第一个正则表达式,以及测试正则表达式的工具Code Architects Regex Tester。
什么是正则表达式
正则表达式(Regular Expression)起源于人类神经系统的早期研究。神经生理学家Warren McCulloch和Walter Pitts研究出一种使用数学方式描述神经网络的方法。1956年,数学家Stephen Kleene发表了一篇标题为“神经网事件的表示法”的论文,并在该论文中引入了“正则表达式”这一个概念。该论文称正则表达式是:“正则集的代数”的表达式。因此,采用“正则表达式”这个术语。正则表达式的定义存在多种说法,具体如下:
正则表达式就是用某种模式去匹配一类字符串的公式,主要用来描述字符串匹配的工具。
正则表达式描述了一种字符串匹配的模式。它可以用来检查字符串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
正则表达式是由普通字符(如字符a到z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
正则表达式就是用于描述某些规则的工具。这些规则经常用于处理字符串中的查找或替换字符串。换句话说,正则表达式就是记录文本规则的代码。
正则表达式就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。
学过《编译原理》的读者可能知道不确定有限自动机(Non-deterministic finite automaton,简称NFA)和确定有限自动机(Deterministic finite automaton,简称DFA)。其实,正则表达式是一个不确定有限自动机。NFA和DFA的最大区别在于它们的状态转换函数。NFA可以对同一个字符串产生多种理解方式,而DFA则只有唯一的一种理解方式。也正因为如此,NFA在匹配过程中可能会回溯,NFA的效率一般要低于DFA。因此,在书写正则表达式时尽量减少回溯来提高正则表达式的效率。
如果你使用过Windows或DOS下用于文件查找的通配符*和?,那么你不难理解正则表达式。如果你需要查找所有Word文档,那么可能使用表达式*.doc。其中,字符*是一个通配符,它可以代表任意字符串。正则表达式和通配符具有相似性,它也可以使用一些字符(如字符.)表示任意字符。然而,它比通配符更具有精确性。
在正则表达式中,匹配是最常用的一个词语,它描述了正则表达式动作结果。给定一段文本或字符串,使用正则表达式从文本或字符串中查找出符合正则表达式的字符串。有可能文本或字符存在不止一个部分满足给定的正则表达式,这时每一个这样的部分被称为一个匹配。其中,匹配存在下面3种类型:
形容词性的匹配,即一个字符串匹配一个正则表达式。
动词性的匹配,即在文本或字符串里匹配正则表达式。
名词性的匹配,即字符串中满足给定的正则表达式的一部分。
正则表达式的应用非常广泛,特别是在字符串处理方面。目前来说,正则表达式已经在很多软件中得到广泛了应用,如Linux、Unix、HP等操作系统,C#、PHP、Java等程序开发环境,以及很多的应用软件中,都可以看到正则表达式的这样或那样的应用。正则表达式常见的应用如下:
验证字符串,即验证给定的字符串或子字符串是否符合指定特征,譬如验证是否是合法的邮件地址、验证是否为合法的HTTP地址等。
查找字符串,从给定的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。
替换字符串,即把给定的字符串中的符合指定特征的子字符串替换为其他字符串,比普通的替换更强大。
提取字符串,即从给定的字符串中提取符合指定特征的子字符串。
更多精彩内容
其他人还在看
匹配移动/联通/电信手机号码正则表达式小结
接下来为大家详细介绍下匹配移动/联通/电信手机号码正则表达式,具体实现代码如下,感兴趣的朋友可以参考下哈
评论 0
收藏 0
赞 0
分享
php匹配网址的正则 几乎可以匹配任何网址
php匹配网址的正则 几乎可以匹配任何网址,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
javascript中使用正则表达式进行字符串验证示例
我写的一个表达式验证示例:功能如下:用户名,不能为空;密码6为数字;密码确认,两次输入密码必须相同;身份证号码必须是15位,或者是18位,最末尾也可以是X
评论 0
收藏 0
赞 0
分享
如何使用JavaScript和正则表达式进行数据验证
利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作,下面与大家分享下如何使用JavaScript和正则表达式进行数据验证,感兴趣的朋友可以参考下哈
评论 0
收藏 0
赞 0
分享
JS、replace利用正则表达式替换SQL所有参数为指定格式的数据
JS、replace 利用正则表达式一次性替换SQL所有参数(带冒号)转为数据,具体的实现思路及代码如下,感兴趣的朋友可以参考下哈,希望对你有所帮助
评论 0
收藏 0
赞 0
分享
常用的JQuery数字类型验证正则表达式整理
本文整理了一些常用的数字类型验证正则,希望大家在使用过程中可以参考下
评论 0
收藏 0
赞 0
分享
PHP preg_match的匹配多国语言的技巧
这篇文章主要是介绍了PHP preg_match中匹配多国语言的方法,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
javascript正则表达式容易被忽略的小问题整理
小问题:lastIndex只对exec()和test()方法起作用,string.match(regexp)是不会影响regexp这个正则的lastIndex属性的,具体祥看本文
评论 0
收藏 0
赞 0
分享
正则表达式概述 什么是正则表达式 .
正则表达式就是用某种模式去匹配一类字符串的公式,主要用来描述字符串匹配的工具
评论 0
收藏 0
赞 0
分享
ajax对注册名进行验证检测是否存在于数据库中
使用ajax对注册名进行验证判断它是否在数据库中存在,具体的实现如下,感性的朋友可以参考下,希望对大家有所帮助
评论 0
收藏 0
赞 0
分享
查看更多
网络赚钱
更多
90后网络爆红美女卖"毒面膜" 年收入超七位数
女子注册相亲网站收到短信 点击链接后6万块钱不翼而飞
巴西世界杯复盘:七大移动营销案例图文解析
复制网赚项目
营销型网站建设提高网站转化率的方法
SEO赚钱的途径有几种?简析当前靠SEO赚钱的几种途径
站长故事
更多
站长故事 一位“苦逼站长”的心酸 SEO真的如此简单吗?
草根站长网站运营:运气创业,勤能过日子
站长们,就别在折腾你的用户了
那些跟马化腾一起创业的亿万富翁们
个人经历:盲目的坚持更新网站真的有用吗?
浅谈新手站长在网站运营中如何去养站?