第一章 正規表示式入門 以egrep為工具)

2021-09-16 22:54:54 字數 2246 閱讀 4380

3.正規表示式雜識

以檔名作模擬

*.txt:可選擇以任何文字開頭,以.txt結尾的所有檔案。

以語言作對比

正規表示式可看作語言,普通字元對應普通語言中的單詞,而元字元對應語法。

? 完整的正規表示式由小的構建模組單元組成。

egrep工具:% egrep 』 正規表示式 』 檔名

元字元/元字串行

匹配物件

匹配位置的元字元

^匹配一行的開頭位置

$匹配一行的結束位置

\<

匹配單詞的開始位置

\>

匹配單詞的結束位置

匹配單個字元的元字元

[···]

匹配單個列出的字元

[^···]

匹配單個未列出的字元

.匹配單個任意字元

\元字元

匹配元字元對應的普通字元量詞?

只可以匹配一次,也可以不匹配

*可匹配多次,也可不匹配

+至少匹配1次,也可匹配多次

至少匹配min次,最多匹配max次

其他元字元

-表示單個字元所在的範圍(僅限於字元組)

|匹配任意分隔的表示式

(···)

1.限定多選結構的範圍

2.標註量詞作用的元素

3.為反向引用「捕獲」文字

\1,\2,...

匹配第幾個括號內表示式相同的文字

在同乙個位置能夠匹配的若干字元(必須匹配乙個字元

特殊性:關於元字元的規定不同於正規表示式語言。

-字元:表示乙個範圍

? 只有在字元組內部(非開頭),連字元才是元字元

連字元出現在字元組的開頭,則只表示乙個普通的字元。

[^...]:匹配任何未列出(不等於已列出字元)的字元。

❗多選結構可以包含很多字元,但不能超越括號的界限。

? 字元組和多選結構的區別

乙個字元組只能匹配目標文字中的單個字元

多選結構自身可能是完整的正規表示式,可匹配任意長度的文字。

-i,放在正規表示式之前。

(···)\整數:匹配與表示式先前部分匹配的同樣的文字

❗無法跨行查詢。

在字元組內部無效。

^cat:以c作為一行的第乙個字元,緊接乙個a,緊接乙個t的文字。

^cat$:只包含cat的行。

^$:空行

^:無意義,能匹配每一行。

gr[ea]ly:首先匹配g,接下來是r,然後是e或a,再是l,最後是y。

[0-9a-fa-f]:匹配0到9、a到f或a到f其中的乙個,可用於處理十六進製制數字

q[^u]:首先匹配q,再匹配除u以外的字元。

03.19.76:首先匹配0,再匹配3,再匹配乙個任意字元,再依次匹配1 、9、任意字元、7、6。

^(from|subject|date)::f作為行的第乙個字元,接著是r、o、m、:或s作為行的第乙個字元,接著是u、b、j、e、c、t、:或d作為行的第乙個字元,接著是a、t、e、:。

\: 匹配單詞的開頭位置,然後是c、a、t這3個字母,然後是單詞的結束位置。

colou?r:匹配c、o、l、o、u或不匹配、r。

:匹配<、h、r、至少1次的空格、s、i、z、e、任意次空格、=、任意次空格、1、4、任意次空格。

\<([a-za-z]+) +/1\>:單詞以字母開頭的單詞,接著是空格(至少乙個)、與前面一樣的單詞。

\([a-za-z]+\):首先是(、再是單詞、最後是)。

第一章 正規表示式

正規表示式是高階的文字模式匹配 抽取 或文字形式的搜尋和替換功能提供了基礎。正規表示式 簡稱regex 是由一些字元或特殊符號組成的字串,他們描述了模式的重複或表述多個字元,於是正規表示式能夠按照某一模式匹配一系列有相似特徵的字串。python使用re模組來支援正規表示式。符號描述 匹配0次或者多次...

python正規表示式 第一章

正規表示式包 re re.search pattern,string 其中pattern是字串形式提供的正規表示式,string是需要匹配的字串 使用 和 測試string有pattern完整匹配 re.search 0123456799 2 none true 只要有乙個匹配成功,就會返回true...

python 核心程式設計》第一章 正規表示式

import rem re.match foo bar foo print m.group footype m.group strm.group 返回匹配的字串 pattern foo bar m re.match pattern,foobarfooooooook print m.group foo...