成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【教程】圖文解讀正則表達式的使用技巧

開發 后端
這篇博客是關于正則表達式(regex)的插圖指南,旨在為那些從來沒有使用過正則表達式,想嘗試但又望而生畏的新手提供一個簡單介紹。

這篇博客是關于正則表達式(regex)的插圖指南,旨在為那些從來沒有使用過正則表達式,想嘗試但又望而生畏的新手提供一個簡單介紹。

一個好的正則表達式看起來像魔法,但請記住:任何足夠先進的技術都無法與魔法區分開來。所以,就讓我們揭開正則表達式的神秘面紗!

如果你理解正則表達式,它會突然變成一個超快速和強大的工具……但你首先需要理解它,老實說,我覺得新手可能會對它望而生畏!讓我們從基礎開始。正則表達式(regex)是什么?它們的用途是什么?

Regex 新手上路

本質上來看,正則表達式是定義一種搜索模式的字符序列。正則表達式通常用于 grep 等工具中,以在較長文本字符串中查找模式。

考慮以下一個 cat.txt 文件: 

  1. catcat2 
  2. dog 

如果我們使用正則表達式 cat 來搜索匹配項,我們會找到以下匹配項: 

  1. catcat2 

高級用戶需要注意的是,本文存在一個技術上的錯誤,即正則表達式和使用正則表達式的工具(如 grep)混為了一談。

正則表達式適用于字符,而不是單詞

需要反復強調的一個重要問題是:正則表達式適用于字符,而不是單詞。隱含串聯。

如果我們使用正則表達式搜索模式 cat,則不會查找單詞「cat」,而會查找字符 c、a 和 t。

點和星號

最基本的字符是單個字符,如 a、b、c 等。現在讓我們介紹以下兩種特殊的字符。

.(點)字符可以匹配*任何單個字符*。例如,如果我們搜索 c.t,則將匹配從 cat 到 c0t 或 cAt 的任何內容,并將匹配任何單個字符 c +任何字符+單個字符 t。

*(星號)字符有點困難。它修改它前面的字符,然后匹配該字符的*零個或多個字符*。的確如此。例如,cat*可以匹配 cat、catt、cattttt 以及 ca。

示例分析:The cat ate my homework

假設我們逐行讀取一個文件,則第一行如下所示: 

  1. The cat ate my homework. 

讓我們看看如何匹配該行中的模式 cat。

我們首先將該模式的首字符與句子中的首字符匹配。

如果找不到匹配項,則跳轉至該行中的下一個字符,然后再從模式的首字符開始。

如果我們找到一個匹配項,則將跳轉至模式和該行中的下一個字符,然后重復這個過程。當我們找到整個模式的匹配時,返回找到匹配項的行。

這就是正則表達式最基本、最常用的功能,即在較大的字符串中查找較小的搜索模式。

講到這里,我想大家已經大致了解了什么是正則表達式以及它的兩個特殊字符: .(點)和 *(星號)。接下來,我會為大家介紹更多其他內容。

正則表達式三叉戟

正則表達式的各個部分可以由三個不同的組件組成:

  1.  錨點
  2.  字符集
  3.  修飾符

這三部分構成了正則表達式的三叉戟!

讓我們從三叉戟的第一個部分開始:錨點!

錨點

錨點指定個各行的模式位置。下面是兩個最重要的錨點:

  •  ^(插入符號)將模式固定到行首。例如,模式^1 匹配以 1 開頭的任意行。
  •  $(美元符)將模式固定到句尾。例如,9$匹配以 9 結尾的任意行。

注意,在以上兩種情況下,錨點必須分別位于模式的開頭和結尾。^1 匹配行首的 1,但 1^匹配后跟^的 1。類似地,1$匹配以 1 結尾的行,但$1 匹配一個該行任意位置后跟 1 的美元符號。

字符集

三叉戟的第二部分:字符集。字符集是正則表達式的基礎。單個字符,比如 a,是最基本的字符集(一組元素)。但是 [0-9] 等正則表達式可以匹配任何一個數字,或者如果你能回想到 *的含義,則可以制作模式 [0-9][0-9](這個模式匹配的內容留給讀者作為練習)。

其他一些重要的字符集:

  •  [0-9] 匹配 0…9 中的任何一個數字
  •  [a-z] 匹配任何小寫字母
  •  [A-Z] 匹配任何大寫字母

我們還可以對多個字符集進行組合:

  •  [A-ZA-Z0-9] 匹配任何大小寫字母和單個數字。

修飾符

此部分內容沒有深入展開,以前面遇到的一個修飾符 *(星號)為例。修飾符改變它前面字符的含義。還有很多其他的修飾符,但以* 為例進行討論是一個很好的開始。

如下所示:讓我們快速將文本轉儲到文件中。 

  1. $ echo "The cat jumps long time \nThen we also have the fact that these are words.\n1234 this is a test post please ignore." >> grep.txt 

這是現在文件中的內容。 

  1. $ cat grep.txt  
  2. The cat jumps long timeThen we also have the fact that these are words.  
  3. 1234 this is a test post please ignore. 

尋找 cat。 

  1. $ grep "cat" grep.txt  
  2. The cat jumps long tim 

尋找任何以數字^[0-9] 開始的任意行。 

  1. $ grep "^[0-9]" grep.txt  
  2. 1234 this is a test post please ignore. 

就是這樣!你剛剛使用了正則表達式。太棒了。

總結

回顧一下這篇博客的內容:

  •  正則表達式的基本功能;
  •  正則表達式的三個主要組件:錨點、字符集和修飾符。
  •   .(點)、*(星號)、^(插入符)和$(美元符號)。
  •  一些字符集 [0-9]、[a-z]、[A-Z] 和它們的組合。

這篇博客的目的是通過帶插圖的介紹使用戶更輕松地了解正則表達式。

如果能夠克服技術上的困難,則最終可以掌握這種相對簡單但功能卻很強大的正則表達式工具,從而為任何數據科學家帶來寶貴的價值。 

 

責任編輯:龐桂玉 來源: 機器學習算法與Python學習
相關推薦

2010-03-25 18:25:36

Python正則表達式

2010-03-01 15:51:59

Python則表達式

2009-08-25 09:54:36

PHP正則表達式

2018-09-27 15:25:08

正則表達式前端

2023-09-04 15:52:07

2010-02-23 13:47:51

Python正則表達式

2009-09-16 17:29:30

正則表達式使用詳解

2023-10-07 08:25:09

Java處理工具正則表達式

2020-09-04 09:16:04

Python正則表達式虛擬機

2010-07-22 09:12:05

Perl正則表達式

2019-10-29 09:20:48

Python文本正則表達式

2024-09-14 09:18:14

Python正則表達式

2010-03-03 13:22:08

Python正則表達式

2010-07-14 09:47:04

Perl正則表達式

2009-08-07 14:24:31

.NET正則表達式

2017-05-12 10:47:45

Linux正則表達式程序基礎

2022-03-28 06:19:14

正則表達式開發

2009-02-18 09:48:20

正則表達式Java教程

2019-07-17 15:45:47

正則表達式字符串前端

2021-01-27 11:34:19

Python正則表達式字符串
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品午夜电影 | 涩涩视频网站在线观看 | 亚洲免费婷婷 | 在线观看亚洲 | 国产精品久久久av | 日韩电影一区二区三区 | 一区二区三区四区在线视频 | 中文字幕av亚洲精品一部二部 | 日韩色图在线观看 | 成人精品国产免费网站 | 国产在线视频一区 | 国产综合精品 | 91黄在线观看 | 久久国产精品色av免费观看 | 黄色成人av| 天堂在线网 | 五月婷婷在线视频 | 日韩欧美国产一区二区 | 亚洲成人黄色 | 欧美成人第一页 | 亚洲精品久久久久久一区二区 | 亚洲一区在线免费观看 | 国产在线一区二区三区 | 欧美激情综合 | 亚洲国产欧美国产综合一区 | 国产 日韩 欧美 在线 | 日韩一区二区三区在线观看视频 | 成人九区 | 久久黄网 | 久久久国产精品视频 | 日韩一级免费大片 | 欧美一区二区三区国产 | 性色在线 | 日韩视频在线观看 | av中文网 | 成在线人视频免费视频 | 亚洲精品白浆高清久久久久久 | 91久久精品国产91久久 | 欧美午夜在线 | 亚洲一区欧美一区 | 国产 亚洲 网红 主播 |