写在篇首:
--------------------------------------------------------------------------------------
此系列是Mastering Regular Expressions的学习要点!
有兴趣的朋友可以使用邮箱和我沟通!(非常欢迎你的交流)
我的邮箱: veic_2005#163.com(把#替换为@)
------------------------------------------------------------------完美的分割线---
正则定义:
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.
正则的应用范围:
文本类型的数据。例如,处理E-mail的发件人、标题、正文等等
通配符(wildcards)的理解:
比如,在操作系统的shell中使用的”*”,但是在语言(Perl、Java、VB.NET等等)中称元字符(Meta Characters)
工具”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.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
元字符「.」是用来匹配任意字符。
但,在中括号([])中表示普通符号,不是元字符。
分享到:
相关推荐
在IT领域,Linux系统Shell和正则表达式是两个至关重要的工具,它们在日常的系统管理、数据分析和脚本编写中发挥着巨大的作用。本文将深入探讨Linux Shell下的正则表达式,包括其基本概念、元字符、模式匹配以及常用...
这是编译原理的一个实验, 是把一个正则表达式转化为不确定有穷自动机NFA的算法程序,朋兴趣的朋友可以下载来看看哦. 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式...
正则化是防止过拟合的有效手段,L1和L2正则化、Dropout等技术可能会出现在习题中。优化算法部分,除了基本的梯度下降,还可能涉及动量法、Adam等更高级的优化策略,理解它们的工作原理和应用场景。 三、机器学习...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串模式。在IT行业中,正则表达式被广泛应用于数据验证、文本搜索、日志分析等多个领域。本详细手册涵盖了ORACLE+PLSQL、JavaScript以及C#三种...
1. **正则表达式和有限状态自动机**:在词法分析中,正则表达式用于定义语言的字符模式,有限状态自动机(如NFA和DFA)则是实现词法分析的工具。 2. **上下文无关文法**:这是语法分析的基础,BNF(巴科斯范式)被...
以下是对这些知识点的详细解释: 1. **编译过程**:编译过程分为多个阶段,首先,词法分析器将源代码分解成一个个称为“单词符号”的单元,接着,语法分析器根据语法规则解析这些单词符号,构建语法树。然后,中间...
方法二是利用正则表达式库`re`的`sub()`函数,通过正则表达式`\bT`匹配单词边界后的"T",然后用`t`替换,确保只替换独立的"T",不替换单词内部的"T"。 4. 正则表达式:正则表达式是一种特殊的字符串序列,用于匹配...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一系列特定的字符、符号和操作符来定义一个模式,以此来检查字符串是否符合这个...
12. `grep`命令的-E选项:用于启用扩展正则表达式,`grep -E '[Hh]enr(y|ietta)' file`会在`file`中查找匹配Henry、henry、Henrietta或henrietta的行。 13. `shift`命令的使用:在给定的程序中,`shift`命令用于...
在homework 2中,很多人未能清晰展示状态机和回滚机制,而homework 3-1&2的2.4(c)部分,需要理解和处理C风格块注释的正规式,注意其中合法和非法的情况,并可以利用在线正则表达式测试工具进行验证。 在homework 4-...
在回归分析中,多重共线性是一个常见的问题,它指的是模型中的自变量...处理多重共线性通常涉及变量选择、正则化技术或者变换数据的方法。在实际应用中,应尽可能减少自变量之间的相关性,确保模型的可靠性和有效性。
学习者将实现Sigmoid函数,理解最大似然估计,并应用正则化的逻辑回归进行模型选择。 ex3则进入了神经网络的基础,包括感知机模型和多层前馈网络。学生会学习如何初始化权重,前向传播,反向传播以计算梯度,以及...
Python中常用的函数模块包括:`os`(操作系统接口)、`sys`(系统相关)、`datetime`(日期和时间处理)、`re`(正则表达式)、`json`(JSON数据格式处理)等。 Python的特色包括简洁的语法、强大的标准库、丰富的...
12. **grep命令的使用**:`grep -E`选项支持正则表达式,示例中的命令会在文件`file`中查找包含`Henry`、`henry`、`Henrietta`或`henrietta`的行。 13. **脚本执行结果分析**:给出的`prog`脚本会根据传入的参数...
1. **习题01 - Java概述** 这部分的习题主要围绕Java的历史、特点、环境配置以及基本的语法结构展开。学习者将学习如何安装JDK,设置环境变量,并编写第一个"Hello, World!"程序。此外,还将涉及Java的分层架构、...
basics - Bin-block 全局解释器锁练习源码 - Bin-Coroutine 协程练习源码 + Coroutine 协程练习源码 + greenlet 模块 - Bin-Thread 线程练习源码 - Bin-Multiprocessing 多进程练习 - Bin-Re 正则表达式练习 ...
本资源摘要信息是关于词法分析的知识点,主要讲解了正则文法、正则式和自动机之间的相互转化。 词法分析是编译原理中的一部分,用于分析代码中的词法结构。词法分析器将源代码分割成单个的词法单元,如关键字、...
在神经网络和深度学习的学习过程中,理解...总的来说,这些习题涵盖了神经网络和深度学习中的核心概念,如正则化、激活函数的选择、参数计算、反向传播以及梯度消失问题,这些都是理解和优化神经网络模型的关键知识点。
在离散数学的学习中,以下几个核心知识点至关重要: 1. **集合论**:集合是离散数学的基本概念,涉及到集合的定义、性质、子集、并集、交集、差集以及笛卡尔积等。理解集合论有助于构建数学思维的基础。 2. **逻辑...