国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Bash腳本:正則表達式基礎篇

系統 Linux
在這篇教程中,我們將會學習一些正則表達式的基本概念,并且學習如何在 Bash 中通過 grep 使用它們,但是如果你希望在其他語言如 python 或者 C 中使用它們,你只能使用正則表達式部分。那么讓我們通過正則表達式的一個例子開始吧,

 

 

Bash腳本:正則表達式基礎篇

正則表達式(簡寫為 regex 或者 regexp)基本上是定義一種搜索模式的字符串,可以被用來執行“搜索”或者“搜索并替換”操作,也可以被用來驗證像密碼策略等條件。

正則表達式是一個我們可利用的非常強大的工具,并且使用正則表達式的優點是它能在幾乎所有計算機語言中被使用。所以如果你使用 Bash 腳本或者創建一個 python 程序時,我們可以使用正則表達式,或者也可以寫一個單行搜索查詢。

在這篇教程中,我們將會學習一些正則表達式的基本概念,并且學習如何在 Bash 中通過 grep 使用它們,但是如果你希望在其他語言如 python 或者 C 中使用它們,你只能使用正則表達式部分。那么讓我們通過正則表達式的一個例子開始吧,

正則表達式看起來像 /t[aeiou]l/ 這個樣子。

但這是什么意思呢?它意味著所提到的正則表達式將尋找一個詞,它以 t 開始,在中間包含字母 a e i o u 中任意一個,并且字母 l 最為***一個字符。它可以是 tel,tal 或者 til,可以匹配一個單獨的詞或者其它單詞像 tilt,brutal 或者 telephone 的一部分。

grep 使用正則表達式的語法是 $ grep "regex_search_term" file_location

如果不理解,不要擔心,這只是一個例子,來展示可以利用正則表達式獲取什么,相信我,這是最簡單的例子。我們可以從正則表達式中獲取更多?,F在我們將從正則表達式基礎的開始。

 

基礎的正則表示式

現在我們開始學習一些被稱為元字符MetaCharacters的特殊字符。它們可以幫助我們創建更復雜的正則表達式搜索項。下面提到的是基本元字符的列表,

  • . 點將匹配任意字符
  • [ ] 將匹配一個字符范圍
  • [^ ] 將匹配除了括號中提到的那個之外的所有字符
  • * 將匹配零個或多個前面的項
  • + 將匹配一個或多個前面的項
  • ? 將匹配零個或一個前面的項
  • {n} 將匹配 n 次前面的項
  • {n,} 將匹配 n 次或更多前面的項
  • {n,m} 將匹配在 n 和 m 次之間的項
  • {,m} 將匹配少于或等于 m 次的項
  • \ 是一個轉義字符,當我們需要在我們的搜索中包含一個元字符時使用

現在我們將用例子討論所有這些元字符。

 

. (點)

它用于匹配出現在我們搜索項中的任意字符。舉個例子,我們可以使用點如:

  1. $ grep "d.g" file1

這個正則表達式意味著我們在名為 ‘file1’ 的文件中查找的詞以 d 開始,以 g結尾,中間可以有 1 個字符的字符串。同樣,我們可以使用任意數量的點作為我們的搜索模式,如 T......h,這個查詢項將查找一個詞,以 T 開始,以 h 結尾,并且中間可以有任意 6 個字符。

 

[ ]

方括號用于定義字符范圍。例如,我們需要搜索一些特別的單詞而不是匹配任何字符,

  1. $ grep "N[oen]n" file2

這里,我們正尋找一個單詞,以 N開頭,以 n 結尾,并且中間只能有 oe 或者 n 中的一個。 在方括號中我們可以提到單個到任意數量的字符。

我們在方括號中也可以定義像 a-e或者 1-18 作為匹配字符的列表。

 

[^ ]

這就像正則表達式的 not 操作。當使用 [^ ] 時,它意味著我們的搜索將包括除了方括號內提到的所有字符。例如,

  1. $ grep "St[^1-9]d" file3

這意味著我們可以擁有所有這樣的單詞,它們以 St 開始,以字母 d 結尾,并且不得包含從 19 的任何數字。

到現在為止,我們只使用了僅需要在中間查找單個字符的正則表達式的例子,但是如果我們需要更多字符該怎么辦呢。假設我們需要找到以一個字符開頭和結尾的所有單詞,并且在中間可以有任意數量的字符。這就是我們使用乘數元字符如 + *? 的地方。

{n}、{n,m}、{n,} 或者 {,m} 也是可以在我們的正則表達式項中使用的其他乘數元字符。

 

* (星號)

以下示例匹配字母 k 的任意出現次數,包括一次沒有:

  1. $ grep "lak*" file4

它意味著我們可以匹配到 lakela 或者 lakkkk。

 

+

以下模式要求字符串中的字母 k 至少被匹配到一次:

  1. $ grep "lak+" file5

這里 k 在我們的搜索中至少需要發生一次,所以我們的結果可以為 lake 或者 lakkkk,但不能是 la。

 

?

在以下模式匹配中

  1. $ grep "ba?b" file6

匹配字符串 bbbab,使用 ? 乘數,我們可以有一個或零個字符的出現。

 

非常重要的提示

當使用乘數時這是非常重要的,假設我們有一個正則表達式

  1. $ grep "S.*l" file7

我們得到的結果是 small、silly,并且我們也得到了 Shane is a little to play ball。但是為什么我們得到了 Shane is a little to play ball?我們只是在搜索中尋找單詞,為什么我們得到了整個句子作為我們的輸出。

這是因為它滿足我們的搜索標準,它以字母 s 開頭,中間有任意數量的字符并以字母 l 結尾。那么,我們可以做些什么來糾正我們的正則表達式來只是得到單詞而不是整個句子作為我們的輸出。

我們在正則表達式中需要增加 ? 元字符,

  1. $ grep "S.*?l" file7

這將會糾正我們正則表達式的行為。

\

\ 是當我們需要包含一個元字符或者對正則表達式有特殊含義的字符的時候來使用。例如,我們需要找到所有以點結尾的單詞,所以我們可以使用:

  1. $ grep "S.*\\." file8

這將會查找和匹配所有以一個點字符結尾的詞。

通過這篇基本正則表達式教程,我們現在有一些關于正則表達式如何工作的基本概念。在我們的下一篇教程中,我們將學習一些高級的正則表達式的概念。同時盡可能多地練習,創建正則表達式并試著盡可能多的在你的工作中加入它們。如果有任何疑問或問題,您可以在下面的評論區留言。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2018-09-27 15:25:08

正則表達式前端

2020-09-04 09:16:04

Python正則表達式虛擬機

2009-08-07 14:31:40

.NET正則表達式基礎

2024-09-14 09:18:14

Python正則表達式

2024-01-04 08:25:03

String表達式工具

2010-03-25 18:25:36

Python正則表達式

2021-01-27 11:34:19

Python正則表達式字符串

2017-05-12 10:47:45

Linux正則表達式程序基礎

2009-02-18 09:48:20

正則表達式Java教程

2019-07-17 15:45:47

正則表達式字符串前端

2009-09-16 18:19:34

正則表達式組

2011-06-02 12:34:16

正則表達式

2022-03-28 06:19:14

正則表達式開發

2016-11-10 16:21:22

Java 正則表達式

2009-09-16 17:15:57

正則表達式引擎

2022-01-04 11:35:03

Linux Shel正則表達式Linux

2023-09-13 08:12:45

2012-04-28 15:22:46

PHP

2017-03-31 14:05:26

Linux正則表達式基礎知識

2009-08-07 14:24:31

.NET正則表達式
點贊
收藏

51CTO技術棧公眾號

成人性视频免费网站| 色97色成人| 成人18网址在线观看| 亚洲xxx自由成熟| caoporm超碰国产精品| 欧美成人激情| 国产精品亚洲综合在线观看| 偷拍自拍在线| 韩剧1988免费观看全集| 色婷婷国产精品综合在线观看| 99久久免费精品国产72精品九九| 成人在线高清视频| 91视频免费在线| 亚洲高清免费视频| 伊色综合久久之综合久久| 调教视频免费在线观看| 国产精品午夜视频| 欧美大片网站在线观看| 日韩经典中文字幕| 久久久精品网| 国产美女高潮在线| 偷拍25位美女撒尿视频在线观看| 欧美 丝袜 自拍 制服 另类| 秋霞在线一区二区| 亚洲视频综合网| 欧美日韩亚洲高清一区二区| 亚洲h动漫在线| 一区二区三区四区av| 国产精品久久三区| 中文av一区特黄| 欧美高清在线精品一区| 91香蕉视频污在线| 久久蜜桃香蕉精品一区二区三区| 99精品视频在线播放观看| 国产成人日日夜夜| 午夜在线播放| 福利在线国产| 国产高清视频在线观看| 又爽又大又黄a级毛片在线视频| 亚洲男人天堂| 免费在线看黄网站| 丝袜国产在线| 一区二区三区欧洲区| 久久丝袜视频| 午夜精品毛片| 石原莉奈在线亚洲二区| 成年人黄色电影| 国产成人看片| 日韩在线视频中文字幕| 中文字幕欧美日韩va免费视频| 神马国产精品影院av| 97视频在线播放| 91偷拍精品一区二区三区| 日韩av影视| 国产免费黄色小视频| 97超碰在线资源站| 久久久久久久久四区三区| 日韩电影大全在线观看| 免费av手机在线观看| 四虎免费av| 在线看中文字幕| 国产视频中文字幕在线观看| 综合久久av| 亚洲国产日韩欧美在线| 国内一区二区在线| 中文字幕一区二区三区不卡在线| 欧美视频一二三区| 久久深夜福利免费观看| 91精品久久久久久久久久入口| 在线观看免费黄色片| 国产99re| 91av亚洲| 136国产福利精品导航网址| av一区二区三区在线| 日韩一区二区三区四区 | 久久精品最新地址| 91麻豆精品国产91久久久使用方法| 精品国产一区二区三区久久狼黑人| 91青青草免费在线看| 日韩黄色影视| 精品av中文字幕在线毛片| 中文字幕在线网| 国产一区二区三区视频在线| 亚洲大胆视频| 2017欧美狠狠色| 日韩国产欧美精品在线| 久久99精品久久久久久秒播放器 | 天堂av一区二区三区在线播放| 国产一区三区三区| 欧美色男人天堂| 国产精品视频免费在线| 黄色片一级视频| 亚洲性色av| 在线亚洲观看| 欧美日韩亚洲激情| 欧美在线免费视屏| 国产精品444| 色佬视频在线观看| 午夜激情在线| 99香蕉国产精品偷在线观看| 午夜不卡av在线| 91亚洲国产成人精品性色| 最近中文字幕mv2018在线高清 | 久久av网站| 日本成人中文| 男女激情网站| 绯色av一区二区| 成人一区不卡| 韩日成人在线| 欧美在线一二三| 欧美尤物一区| av在线播放资源| 国产传媒欧美日韩成人| 亚洲激情 国产| 5566成人精品视频免费| 亚洲综合自拍一区| av一区在线观看| 久久er精品视频| 久久天天躁狠狠躁夜夜躁| 免费看涩涩视频| 宅男在线观看免费高清网站| h1515四虎成人| 国产精品美女久久久久久久久久久| 97高清免费视频| 色综合888| 国产一区二区三区免费在线| 中文子幕无线码一区tr| 国产黑人绿帽在线第一区| 人人超在线公开视频| 成人三级伦理片| 国产精品高精视频免费| 岛国中文字幕在线| 精品伊人久久久| 制服丝袜一区二区三区| av在线播放天堂| 天堂视频中文在线| 日韩成人精品视频| 欧美国产日韩xxxxx| 九色国产在线观看| 懂色av噜噜一区二区三区av| 国产精品专区h在线观看| 国产精品久久久久久福利| 99re热这里只有精品免费视频| 日本一区二区不卡| mm视频在线视频| 一卡二卡三卡日韩欧美| 伊人久久大香线蕉综合75| xxxxx日韩| 99久久婷婷国产精品综合| 91免费在线视频| 精品国产亚洲一区二区三区在线| 色域天天综合网| 1024精品视频| 国产福利一区二区三区在线播放| 天天操天天色综合| 欧美精品一区二区三区免费播放| 91久久黄色| 成人美女免费网站视频| 精品一区二区三区中文字幕| 精品999在线播放| 亚洲精品成人久久久998| 日韩情爱电影在线观看| 欧美人与性动交a欧美精品| 黄色在线观看www| 中文字幕一区二区不卡| 日韩免费视频播放| 国内外成人在线| 久久精品人成| 亚洲综合丁香| 日韩精品亚洲元码| 视频免费一区| 欧美少妇一区二区| 四虎影视2018在线播放alocalhost| 中文字幕一区二区三区在线不卡 | 国产区一区二| 亚洲国产精品中文| 色多多在线观看| 久久女同精品一区二区| 天堂av免费看| 经典一区二区三区| 日韩免费电影一区二区| 一区二区三区四区五区在线| 91成人免费观看| 欧美电影《睫毛膏》| 国产美女精品视频免费观看| 红桃成人av在线播放| 国产精品99久久久久久久久久久久| 免费短视频成人日韩| 国产精品麻豆va在线播放| 99久久99久久精品国产片果冰| 国产精品一 二 三| 亚洲综合好骚| 国产玉足脚交久久欧美| 国产农村妇女精品| 美国成人av| 欧美色偷偷大香| 两个人看的在线视频www| 色妞欧美日韩在线| 亚洲日本三级| 亚洲精品美女在线|