`
luliangok
  • 浏览: 816413 次
文章分类
社区版块
存档分类
最新评论

正则习点 --- 01

 
阅读更多
写在篇首:

--------------------------------------------------------------------------------------

此系列是Mastering Regular Expressions的学习要点!

有兴趣的朋友可以使用邮箱和我沟通!(非常欢迎你的交流)

我的邮箱: veic_2005#163.com(把#替换为@)

------------------------------------------------------------------完美的分割线---

Chapter 1. Introduction to Regular Expressions

正则定义:

l能检查多个文件,挑出包含重复单词的行,高亮标记每个重复单词(using standard ANSI escape sequences), 同时必须显示这行文字来自哪个文件。

l能跨行查找,即使两个单词一个在某行末尾而另一个在下一行的开头,也算重复单词。

l能进行不区分大小写的查找,例如’The the…’,重复单词之间可以出现任意数量的whitespace (spaces, tabs, newlines, and the like)。

l能查找用HTML tag分隔的重复单词。HTML tag用于标记网页上的文本,例如,粗体单词是这样表示的:’…it is <B>very</B> very important…’。

Regularexpressions can add, remove, isolate, and generally fold, spindle, and mutilateall kinds of text and data.

1.1 Solving Real Problems

正则的应用范围:

文本类型的数据。例如,处理E-mail的发件人、标题、正文等等

1.2 Regular Expressions as aLanguage

通配符(wildcards)的理解:

比如,在操作系统的shell中使用的”*”,但是在语言(Perl、Java、VB.NET等等)中称元字符(Meta Characters)

1.3 The Regular-Expression Frame ofMind

工具”egrep”的使用:

Figure1-1. Invoking egrep from the command line

提示:从cygwin系统中拷贝如下文件即可在Windows运行!

序号

文件名

1

cyggcc_s-1.dll

2

cygiconv-2.dll

3

cygintl-8.dll

4

cygwin1.dll

5

egrep.exe

1.4 Egrep Metacharacters

1.4.1 Start and End of the line

a. 开头匹配

^放在匹配字符串之前

b. 结尾匹配

$放在匹配字符串之后

1.4.2 Character classes

1.4.2.1 Matching any one of several characters

i. 正则表达式结构体

「[…]」

中括号中间的字符,是”或(|)”的关系

ii. 字符范围

‘-’连字符,表示数字或者字母的一定范围。

例如,<H[1-6]>等同于<H[123456]>;

[A-Fa-f0-9]等同于[0123456789abcdefABCDEF]

1.4.2.2 Negated character classes

「[^…]」

关于”^”,在字符组外,表示行首锚点(line anchor)。但是在字符组内部(而且必须是紧接在字符组的第一个中括号之后),它就是一个元字符。

1.4.3 Matching Any Character with Dot

元字符「.」是用来匹配任意字符。

但,在中括号([])中表示普通符号,不是元字符。



分享到:
评论

相关推荐

    linux系统shell正则表达式-练习工具和教材

    在IT领域,Linux系统Shell和正则表达式是两个至关重要的工具,它们在日常的系统管理、数据分析和脚本编写中发挥着巨大的作用。本文将深入探讨Linux Shell下的正则表达式,包括其基本概念、元字符、模式匹配以及常用...

    正则表达式 到 NFA

    这是编译原理的一个实验, 是把一个正则表达式转化为不确定有穷自动机NFA的算法程序,朋兴趣的朋友可以下载来看看哦. 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式...

    吴恩达深度学习课后习题 1-3 章

    正则化是防止过拟合的有效手段,L1和L2正则化、Dropout等技术可能会出现在习题中。优化算法部分,除了基本的梯度下降,还可能涉及动量法、Adam等更高级的优化策略,理解它们的工作原理和应用场景。 三、机器学习...

    各类正则表达式详细手册

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串模式。在IT行业中,正则表达式被广泛应用于数据验证、文本搜索、日志分析等多个领域。本详细手册涵盖了ORACLE+PLSQL、JavaScript以及C#三种...

    《编译原理》清华第二版习题答案-清华版.rar )

    1. **正则表达式和有限状态自动机**:在词法分析中,正则表达式用于定义语言的字符模式,有限状态自动机(如NFA和DFA)则是实现词法分析的工具。 2. **上下文无关文法**:这是语法分析的基础,BNF(巴科斯范式)被...

    编译原理习题课--期末复习

    以下是对这些知识点的详细解释: 1. **编译过程**:编译过程分为多个阶段,首先,词法分析器将源代码分解成一个个称为“单词符号”的单元,接着,语法分析器根据语法规则解析这些单词符号,构建语法树。然后,中间...

    Python程序设计习题答案-(5).docx

    方法二是利用正则表达式库`re`的`sub()`函数,通过正则表达式`\bT`匹配单词边界后的"T",然后用`t`替换,确保只替换独立的"T",不替换单词内部的"T"。 4. 正则表达式:正则表达式是一种特殊的字符串序列,用于匹配...

    正则表达式规则及常用正则表达式列举

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一系列特定的字符、符号和操作符来定义一个模式,以此来检查字符串是否符合这个...

    习题07-Shell编程.doc

    12. `grep`命令的-E选项:用于启用扩展正则表达式,`grep -E '[Hh]enr(y|ietta)' file`会在`file`中查找匹配Henry、henry、Henrietta或henrietta的行。 13. `shift`命令的使用:在给定的程序中,`shift`命令用于...

    2017习题课-张昱1

    在homework 2中,很多人未能清晰展示状态机和回滚机制,而homework 3-1&2的2.4(c)部分,需要理解和处理C风格块注释的正规式,注意其中合法和非法的情况,并可以利用在线正则表达式测试工具进行验证。 在homework 4-...

    应用回归分析-第6章课后习题答案-2.doc

    在回归分析中,多重共线性是一个常见的问题,它指的是模型中的自变量...处理多重共线性通常涉及变量选择、正则化技术或者变换数据的方法。在实际应用中,应尽可能减少自变量之间的相关性,确保模型的可靠性和有效性。

    Coursera-机器学习-吴恩达-课后习题答案-编程练习全部答案(ex1-ex8)

    学习者将实现Sigmoid函数,理解最大似然估计,并应用正则化的逻辑回归进行模型选择。 ex3则进入了神经网络的基础,包括感知机模型和多层前馈网络。学生会学习如何初始化权重,前向传播,反向传播以计算梯度,以及...

    Python程序设计课后习题答案-第一单元.docx

    Python中常用的函数模块包括:`os`(操作系统接口)、`sys`(系统相关)、`datetime`(日期和时间处理)、`re`(正则表达式)、`json`(JSON数据格式处理)等。 Python的特色包括简洁的语法、强大的标准库、丰富的...

    习题07-Shell编程.pdf

    12. **grep命令的使用**:`grep -E`选项支持正则表达式,示例中的命令会在文件`file`中查找包含`Henry`、`henry`、`Henrietta`或`henrietta`的行。 13. **脚本执行结果分析**:给出的`prog`脚本会根据传入的参数...

    《Java2程序设计实用教程(第2版)》习题及实验(叶核亚)

    1. **习题01 - Java概述** 这部分的习题主要围绕Java的历史、特点、环境配置以及基本的语法结构展开。学习者将学习如何安装JDK,设置环境变量,并编写第一个"Hello, World!"程序。此外,还将涉及Java的分层架构、...

    Python-Flask

    basics - Bin-block 全局解释器锁练习源码 - Bin-Coroutine 协程练习源码 + Coroutine 协程练习源码 + greenlet 模块 - Bin-Thread 线程练习源码 - Bin-Multiprocessing 多进程练习 - Bin-Re 正则表达式练习 ...

    第三章_词法分析_习题讲解_(编译原理)

    本资源摘要信息是关于词法分析的知识点,主要讲解了正则文法、正则式和自动机之间的相互转化。 词法分析是编译原理中的一部分,用于分析代码中的词法结构。词法分析器将源代码分割成单个的词法单元,如关键字、...

    神经网络与深度学习-课后习题答案

    在神经网络和深度学习的学习过程中,理解...总的来说,这些习题涵盖了神经网络和深度学习中的核心概念,如正则化、激活函数的选择、参数计算、反向传播以及梯度消失问题,这些都是理解和优化神经网络模型的关键知识点。

    离散数学--高教版--课后答案

    在离散数学的学习中,以下几个核心知识点至关重要: 1. **集合论**:集合是离散数学的基本概念,涉及到集合的定义、性质、子集、并集、交集、差集以及笛卡尔积等。理解集合论有助于构建数学思维的基础。 2. **逻辑...

Global site tag (gtag.js) - Google Analytics