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

正则习点 --- 03

 
阅读更多

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 Expanding the Foundation

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.


分享到:
评论

相关推荐

    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版)》习题及实验(叶核亚)

    3. **习题03 - 面向对象的核心特性** 面向对象是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