日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式概述

發(fā)布時間:2023/12/18 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、正則表達式概述
    • 1.1正則表達式定義
    • 1.2正則表達式層次
    • 1.3Linux中文本處理工具
    • 1.4基礎(chǔ)正則表達式元字符
  • 二、演示
    • 2.1 grep[選項]...查找條件目標文件
      • 2.1.1不區(qū)分大小寫查找the所有的行
    • 2.2 cut :列表截取工具
    • 2.3 sort 排序工具
    • 2.4 uniq :去重復工具
    • 2.5 tr 修改工具


一、正則表達式概述

  • 正則表達式,又稱規(guī)則表達式。(英語:Regular Expression),在代碼中常簡寫為regex、regexp
    或RE,計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合以某個模式(規(guī)則)的文本。

  • 正則表達式不只有一種,而且 linux中不同的程序可能會使用不同的正則表達式,如:工具:grep sed awk egrep

  • 正則表達式—通常用于判斷語句中,用來檢查某一字符串是否滿足某一格式正則表達式是由普通寧字符與元寧符組成

  • 普通字符包括大小寫字母、數(shù)字、標點符號及一些其他符號
    元字符是指在正則表達式中具有特殊意義的專用字符,可以用來規(guī)定其前導字符(即位于元字符前面的字符)在目標對象中的出現(xiàn)模式

  • LINUX 中常用的有兩種正則表達式引擎

    基礎(chǔ)正則表達式:BRE
    擴展正則表達式:ERE

1.1正則表達式定義

  • 正則表達式,又稱正規(guī)表達式、常規(guī)表達 式

  • 使用字符串來描述、匹配一系列符合某個規(guī)則的字符串

  • 正則表達式組成

    普通字符
    大小寫字母、數(shù)字、標點符號及一些其他符號元字符
    在正則表達式中具有特殊意義的專用字符

1.2正則表達式層次

  • 基礎(chǔ)正則表達式

  • 擴展正則表達式

1.3Linux中文本處理工具

  • grep
  • egrep
  • sed
  • awk

1.4基礎(chǔ)正則表達式元字符

  • 基礎(chǔ)正則表達式是常用的正則表達式部分
  • 除了普通字符外,常見到以下元字符

\ :轉(zhuǎn)義字符,\ ! 、\n等
^ :匹配字符串開始的位置例: ^ a、^ the、^#
$ :匹配字符串結(jié)束的位置例: word$
. :匹配除\n之外的任意的一個字符例: go.d 、g…d

  • 常見元字符(續(xù))

* :匹配前面子表達式o次或者多次
例: goo*d、’ go.*d
[list]:匹配list列表中的一個字符
例: go[ola]d,[abc]、[a-z]、[a-zO-9]
[^list]:匹配任意不在list列表中的一個字符
例:[^a-z]、[^O-9]、[^A-Z0-9]
\{n,m\}:匹配前面的子表達式n到m次,有\(zhòng){n\}、\{n,\}、\{n,m\}三種格式
例: go\{2\}d、go\{2,3\}d、go\{2,\}d

  • 擴展正則表達式元字符
  • 擴展正則表達式是對基礎(chǔ)正則表達式的擴充深化擴展元字符

+:匹配前面子表達式1次以上
例: go+d,將匹配至少一個o
?:匹配前面子表達式0次或者1次
例: go?d,將匹配gd或god
():將括號中的字符串作為一個整體
例:(xyz)+,將匹配xyz整體1次以上,如xyzxyz
|:以或的方式匹配字條串
例1: good|food,將匹配good或者food
例2: g(oo|la)d,將匹配good或者glad

二、演示

2.1 grep[選項]…查找條件目標文件

-E:開啟擴展(Extend的正則表達式
-c : 計算找到”搜尋字符串“的次數(shù)
-i :忽略大小寫的不同,所以大小寫視為相同
-o :只顯示被模式匹配到的字符串
-v﹔反向選擇,亦即顯示出沒有‘搜尋字符串′內(nèi)容的那一行!(反向查找,輸出與查找條件不相符的行)
–color=auto :可以將找到的關(guān)鍵詞部分加上顏色的顯示喔!
-n :順便輸出行號
-c 只打印匹配的文本行的次數(shù),不顯示文本內(nèi)容。
-h 當搜索多個文件,不顯示匹配文件名前綴。
-l 只列出含義匹配的文本行的文件的文件名,不顯示其具體匹配的內(nèi)容
-s 不顯示關(guān)于不存在或無法讀取文件的錯誤信息
-w 匹配整個單詞
-x 匹配整個文本行
-r 遞歸搜索,不僅搜索當前目錄,還有各級子目錄
–color=auto 可以將找到的關(guān)鍵詞部分加上顏色的顯示

2.1.1不區(qū)分大小寫查找the所有的行

2.2 cut :列表截取工具

使用說明:cut 命令從文件的每一行剪切字節(jié)、字符和字段并將這些字節(jié)、字符和字段寫至標準輸出。如果不指定 File 參數(shù),cut 命令將讀取標準輸入。必須指定 -b、-c 或 -f 標志之一

常用選項

選項說明
b按字節(jié)截取
c按字符截取,常用于中文
d指定以什么為分隔符截取,默認為制表符
f通常和-d一起


2.3 sort 排序工具

sort 是一個以行為單位對文件內(nèi)容進行排序的工具,也可以根據(jù)不同的數(shù)據(jù)類型來排序。例如數(shù)據(jù)和字符的排序就不一樣

格式
sort [選項] 參數(shù)

常用選項與說明

選項說明
t指定分隔符,默認使用[Tab]吧 鍵或空格分隔
k指定排序區(qū)域,哪個區(qū)間排序
n按照數(shù)字進行排序,默認是以文字形式排序
u等同于 uniq,表示相同的數(shù)據(jù)僅顯示一行,注意:如果行尾有空格去重就不成功
r反向排序,默認是升序,-r就是降序
o將排序后的結(jié)果轉(zhuǎn)存至指定文件
f忽略大小寫,會將小寫的字母都轉(zhuǎn)換為大寫字母來進行比較
b忽略每行前面的空格

sort /etc/passwd 不加任何選項默認按第一列升序,字母的話就是從a到z由上而下顯示

2.4 uniq :去重復工具

主要用于去除連續(xù)的重復行

注意:是連續(xù)的行,所以通常和sort結(jié)合使用先排序使之變成連續(xù)的行再執(zhí)行去重操作,否則不連續(xù)的重復行他不能去重

格式
uniq 【選項】 參數(shù)

常用選項說明

選項說明
c對重復的行進行計數(shù)
d僅顯示重復行
u僅顯示出現(xiàn)一次的行

示例
[root@localhost ~]# cat shuiguo.txt | uniq -c ##統(tǒng)計重復行的次數(shù),不連續(xù)的重復行他不算做重復行

比較實用的幾個案例
[root@localhost ~]# who ##查看登陸用戶
root pts/0 2022-05-06 14:32 (192.168.161.20)
[root@localhost ~]# who | awk ‘{print $ 1}’
root
[root@localhost ~]# who | awk ‘{print $ 1}’ |uniq
root
[root@localhost ~]# who | awk ‘{print $ 1}’ |sort |uniq|grep -v “^$” |grep -v wtmp ##查看登陸過系統(tǒng)的用戶
root
[root@localhost ~]# ss -nt |tr -s " "|cut -d " " -f5 |cut -d “:” -f1 |sort |uniq -c ##查看登陸ip和使用者個數(shù)
1 192.168.161.20
1 Address
[root@localhost ~]# ss -nta |grep -v ‘State’|cut -d " " -f1 |sort |uniq -c ##查看客戶端和監(jiān)聽服務端個數(shù)
1 ESTAB
3 LISTEN

2.5 tr 修改工具

它可以用一個字符來替換另一個字符,或者可以完全除去一些字符,也可以用它來除去重復字符

用法:
tr [選項]… SET1 [SET2]

從標準輸入中替換、縮減和/或刪除字符,并將結(jié)果寫到標準輸出。

常用選項

-d 刪除字符

-s 刪除所有重復出現(xiàn)的字符,只保留第一個

示例:

[root@localhost ~]# cat shuiguo.txt | tr ‘a(chǎn)-z’ ‘A-Z’ ##小寫字母全部替換成大寫

總結(jié)
相關(guān)的文件操作,只是起到一個方便閱讀的作用,并不會改變文件相關(guān)配置,可以放心使用

總結(jié)

以上是生活随笔為你收集整理的正则表达式概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。