[系列][编译原理]正则表达式

关于正则表达式,作为软件工程师应该比较熟悉了。所谓正则表达式,就是表示字符串的格式。正则表达式r完全由它所匹配的串集来定义。这个集合称为由正则表达式生成的语言,写作L(r)。此处的语言只是表示“串的集合”,它与程序设计语言并无特殊关系。

 

基本的正则表达式

  正则表达式运算

    有3种基本运算:

    1. 从各选择对象中选择,用元字符|表示。比如: a|b

    2. 连结,由并置表示。比如: ab

    3. 重复或“闭包”,由元字符*表示。比如: a*

 

  运算的优先和括号的使用

    例如: a|(b(c*))

 

  正则表达式的名字

    这样为较长的正则表达式提供了一个简化的名字。例如:

    定义 digit = 0|1|2|...|9

    则序列(0|1|2|...|9) (0|1|2|...|9)*可被写作digit digit*

 

正则表达式的拓展

  1. 一个或多个重复用元字符+表示。

  2. 任意字符用元字符.表示。

  3. 字符范围。例如[a-z]表示所有的小写字母。

  4. 不在给定集合的任意字符用元字符~表示。例如: ~(a|b|c)

  5. 可选的子表达式。

 

通用程序设计中记号的正则表达式

  1. 数。

    nat = [0-9]+

    signedNat = (+|-)? nat

    number = signedNat ("." nat ) ? (E signedNat)?

  2. 保留字和标识符

    reserved = if | while | do | ...

    letter = [a - zA - Z]

    digit = [0 - 9]

    identifier = letter (letter | digit)*

  3. 注释

转载于:https://www.cnblogs.com/cwblaze/archive/2010/01/29/1659042.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql sum_MySQL中的SUM函数使用教程

MySQL的SUM函数是用来找出记录中各种的字段的总和。 要了解SUM函数考虑EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+-----------…

WEB_面试题_第三阶段

第三阶段面试题 一、JavaScript高级 1. 判断以下程序的输出结果: var age100; function test(){ this.age50; return function(){ return this.age; } } var mnew test(); alert(m()); var ntest(); alert(n()); 答案: 100 50 构造函数一旦返回一个对象,…

PS教程第七课:如何查看图层

ctrlj保存选区 点击图层第一个 然后打开复制的图层 变成小眼睛

暴走大侠找不到服务器了,《暴走大侠》常见问题汇总(图文)

《暴走大侠》常见问题汇总暴走大侠常见问题汇总1,翡翠叶最划算最节省的用法就是换门派贡献,然后拿贡献换突破石头,换万寿丹。2,门派从桃花岛开始一个一个进,先攒够足够的贡献再换门派,不要着急去后面的门派…

利用SoapHeader验证web service调用的合法性(dwonmoon)

本文主要通过示例介绍利用SoapHeader验证web service调用的合法性, 一建立Web service项目,新建一个APIService.asmx 其后台代码如下 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.W…

mysql往前一天同一时间_Mysql时间轴数据 获取同一天数据的前三条

创建表数据CREATE TABLE praise_info (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ID,pic_id varchar(64) DEFAULT NULL COMMENT 图片ID,created_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,PRIMARY KEY (id),KEY pic_id (pic_id) USING BTREE) ENGINEInn…

服务器2003 系统修复,第十一篇 Windows Server 2003系统修复.pdf

第十一章 Windows Server 2003系统修复windows Server 2003提供了各种系统防护与修复措施统防护与修复措施,,主要包括主要包括::磁盘容错系统磁盘容错系统 ((见见1212章章 ))文件的备份与还原文件的备份与还原 ((见见1313章章 ))高…

fckeditor配置

原文地址http://hi.baidu.com/huqiwen/blog/item/7d36b15113fddd1e377abe7d.html 由于FckEditor for java 2.4相对于2.3而言做了许多改变,这些改变使得我们的Fckeditor配置起来更方便。例如: 基础包名从:com.fredck.FCKeditor 改为 net.fcked…

css中怎么消除a的下划线,如何使用css去掉a标签的下划线?(代码详解)

写html超链接的时候,超链接总是自带下划线,如果不需要下划线,我们需要将其去掉,下面我们就来说一下怎么去掉下划线。我们在使用超链接的时候,下划线总是伴随着出现,从视觉上来说有着下划线的a标签总是感觉很…

mysql 批量添加字段前缀_MySQL中批量前缀表的sql语句

1、批量删除前缀表sql语句先查询生成需要操作的表Select CONCAT( drop table , table_name, ; )FROM information_schema.tablesWhere table_name LIKE ngis20201201_%; /* "ngis20201201_"为要删除的表前缀*/执行此SQL语句后会生成一串SQL语句,必须再执…

淘宝CSV每个字段的数据容量原来有限制的

淘宝CSV每个字段的数据容量原来是有限制的。不可大于25000个字符。 这一点我也是在淘宝助理中编辑商品时才发现的问题。 然而很多店铺的商品描述长度都大于这个数值。wyh? 这是因为他们做了某些淘宝的的商品推广服务。 可能这些超过字符数的商品下载到淘宝助中时,其…

133-PHP子类无法重写父类private同名函数

<?phpclass father{ //定义father类//定义protected成员方法protected function cook(){return protected cook;}protected function programme(){return protected programme;}protected function kung_fu(){return private kung fu;}}class son extends father{pr…

php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)

1.首先做主页面Ajax_pag.php代码如下&#xff1a;Ajax做分页.header{margin-top: 20px;}关键字&#xff1a;地区代号地区名称父级代号2.然后做分页查询JS页面Ajax_pag.js代码如下&#xff1a;//ajax分页开始var ts 10;//每页显示的条数var page 1;//当前页$(document).ready(…

ajax modelbinder,.NET Core 使用ModelBinder去掉所有参数的空格

一.前言通过各种姿势搜索都没搜到这方面的,唯一找到一个比较符合的,但是只适合简单类型,而且代码还没贴全,心累。。然后查看官网和源码之后,发现继承并实现 IModelBinder和IModelBinderProvider 即可。我这里是WebApi,所以要区分绑定属性[FromBody]、[FromForm]等。不同的绑定方…

Aswing入门教程 1.6 颜色和填充

Aswing入门教程 1.6 颜色和填充作者&#xff1a;胡矿&#xff0c;iiley&#xff0c;Bill著作权所有&#xff0c;请勿转载www.flashseer.orgGoogle Dochttp://docs.google.com/Doc?iddnp8gdz_16d63xzwGraphics2D允许你利用刷子对象&#xff08;Bursh&#xff09;来进行颜色填充…

学习10:Python重要知识

Python易忽略知识 &#xff08;1&#xff09;print 默认输出是换行的&#xff0c;如果要实现不换行需要在变量末尾加上 end""&#xff1a; &#xff08;2&#xff09;isinstance 和 type 的区别在于&#xff1a;type()不会认为子类是一种父类类型。isinstance()会认为…

mc服务器word文件夹,我的世界服务器创建:MC个人服务器创建流程

:缺防盗等等乏的级高能功合&#xff1a;适友之间朋联机bkkuti务器服优点功&#xff1a;齐能全&#xff0c;插件样缺点多配置非常&#xff1a;复杂mi,encarft级升时的候能不步同新更适合&#xff1a;专服业务器第步、三硬配置件的世我服界器务建创首要具先备相不当的错络带宽网&…