1.4.10 Parentheses andBackreferences
小括号的用途:
1.限制多选项(alternation)的范围;
2.使用「|」将若干字符组合为一个单元,受问号或星号之类量词的作用;
3.反向引用(backreference);表现形式为元字符序列「\1…」
例如,
% egrep -i '\<([a-z]+) +\1\>' files…
1.4.11 The Great Escape
转义符:在除了字符组内部之外使用反斜线(backslash),使元字符失去特殊含义,成为普通字符。
比如:
「\.」:转义的点号
1.5.1 A Few More Examples
1.5.1.1 A string within double quotes
A simple solution to matching a stringwithin double quotes might be: 「”[^”]*”」
两端的引号用来匹配字符串开头和结尾的引号。在这两个引号之间的文本可以包括双引号之外的任何字符。所以我们使用「[^*]」来匹配除双引号之外的任何字符,用「*」来表示两个引号之间可以存在任意数目的非双引号字符。
1.5.2 Regular Expression Nomenclature
1.5.2.1 Regex
正则表达式,简称正则(Regex)
1.5.2.2 Matching
正则表达式「a」不能匹配cat,但是能匹配cat中的a。
1.5.2.3 Metacharacter
只有在字符组外部并且是在未转义的情况下,才有意义。
1.5.2.4 Flavor
我们主要讲Perl流派。
1.5.2.5 Subexpression
“子表达式”指的是整个正则表达式中的一部分,通常是小括号内的表达式,或者是由「|」分隔的多选(alternation)分支。
1.5.2.6 Character
ASCII编码的字节
1.5.3 Summary
Egrep工具的元字符总结。
Table1-3. Egrep Metacharacter Summary
Items to Match a Single Character
|
Metacharacter
|
Matches
|
.
|
dot
|
Matches any one character
|
[…]
|
character class
|
Matches any one character listed
|
[^…]
|
negated character class
|
Matches any one character not listed
|
\char
|
escaped character
|
When char is a metacharacter, or the escaped combination is not otherwise special, matches the literal char
|
Items Appended to Provide “Counting”: The Quantifiers
|
?
|
question
|
One allowed, but it is optional
|
*
|
star
|
Any number allowed, but all are optional
|
+
|
plus
|
At least one required; additional are optional
|
{min, max}
|
specified range†
|
Min required, max allowed
|
Items That Match a Position
|
^
|
caret
|
Matches the position at the start of the line
|
$
|
dollar
|
Matches the position at the end of the line
|
\<
|
word boundary†
|
Matches the position at the start of a word
|
\>
|
word boundary†
|
Matches the position at the end of a word
|
Other
|
|
|
alternation
|
Matches either expression it separates
|
(…)
|
parentheses
|
Limits scope of alternation, provide grouping for the quantifies, and “captures” for backreferences
|
\1, \2, ...
|
backreference†
|
Matches text previously matched within first, second, etc., set of parentheses.
|
分享到:
相关推荐
在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`脚本会根据传入的参数...
3. **习题03 - 面向对象的核心特性** 面向对象是Java的核心特性,这部分习题将引导学生理解和运用类、对象、封装、继承和多态。学生需要创建自己的类,实现方法,理解继承的作用,以及如何使用多态来增强代码的灵活...
basics - Bin-block 全局解释器锁练习源码 - Bin-Coroutine 协程练习源码 + Coroutine 协程练习源码 + greenlet 模块 - Bin-Thread 线程练习源码 - Bin-Multiprocessing 多进程练习 - Bin-Re 正则表达式练习 ...
本资源摘要信息是关于词法分析的知识点,主要讲解了正则文法、正则式和自动机之间的相互转化。 词法分析是编译原理中的一部分,用于分析代码中的词法结构。词法分析器将源代码分割成单个的词法单元,如关键字、...
在神经网络和深度学习的学习过程中,理解...总的来说,这些习题涵盖了神经网络和深度学习中的核心概念,如正则化、激活函数的选择、参数计算、反向传播以及梯度消失问题,这些都是理解和优化神经网络模型的关键知识点。
在离散数学的学习中,以下几个核心知识点至关重要: 1. **集合论**:集合是离散数学的基本概念,涉及到集合的定义、性质、子集、并集、交集、差集以及笛卡尔积等。理解集合论有助于构建数学思维的基础。 2. **逻辑...