當前位置:首頁 » 操作系統 » linux正則表達式

linux正則表達式

發布時間: 2022-08-08 10:37:32

『壹』 linux正則表達式

sed 's/#.*$//g' 把#開頭的行替換成空行
sed '/^$/d' 把空行刪掉
s是替換

g是指替換掉所有符合條件的
d是刪除
^行的開頭
$行的結尾
.除 "\n" 之外的任何單個字元
*前面的子表達式零次或多次

『貳』 Linux命令行大全:什麼是正則表達式

前面我們已經接觸過命令行提供的許多特性和工具,並且也遇到過一些相當神秘的shell特性及命令,比如shell擴展和引用、鍵盤快捷鍵和命令歷史記錄等,更不用提vi編輯器了。正則表達式也延續了這種傳統,而且可以說是眾多特性中最神秘的一個(該說法應該會持有爭議)。當然,並不是說這些特性不值得大家花時間去學習。恰恰相反,熟練掌握這些用法會給人意想不到的效果,盡管它們的全部價值可能不會立即體現出來。

『叄』 Linux中,正則表達式的作用是什麼

正則表達式主要用來描述、匹配一系列符合某個句法規則的字元串。很多時候用在查詢操作上。

『肆』 Linux的正則表達式問題。

你好,沒有學過LINUX的正則,不過正則表達式,一般都相近,可能會有一些小差別。我可以用javascript的正則式表達上面兩個問題,希望對你有幫助:

1

『伍』 linux find 正則表達式

1:
find 0?
0?代表的是要查找的路徑, 意思是在0?這個路徑下查找. bash的?匹配任意一個字元,這里0?匹配到了01和0s. 在01和0s下查找文件,返回了01 0s.

2:
find 0.
在0.下查找,bash里.就是字元'.' ,因為沒有0.這個文件, 所以報上面的錯誤.

3.
find ./ -regex "0."
在當前目錄查找匹配正則0.的文件, -regex的正則"0." 使用的是emacs的正則, 匹配0後面跟一個字元. 錯誤是在於-regex的正則表達式必須匹配整個路徑, 文件名前的路徑"./"也需要匹配. 可以這樣寫
find ./ -regex "./0."

『陸』 linux中 正則表達式和通配符的區別

通配符
它是由shell解析,並且一般用於匹配文件名,實際上就是shell解釋器去解析的特殊符號,linux系統通配符有幾下幾種:
*:匹配任意多個字元
?:匹配任意一個字元
[...]:匹配中括弧內出現的任意一個字元
[!...]:不匹配中括弧內出現的任意一個字元

一般出現在要shell命令或腳本中,匹配特定的文件名

正則表達式
它是一個字元匹配標准,一些命令工具按此標准實現字元匹配,根據命令支持的匹配功能可分為基礎正則表達式和擴展正則表達式,常用於支持正則表達式的工具,如sed,grep,awk...
有如下一些常用的匹配元字元:

字元匹配
.:匹配任意單個字元
*:匹配其前面一個字元出現任意次
?:匹配其前面的字元1次或0次
+:匹配其前面一個字元出現至少一次(在擴展正則表達式中)

位置匹配
^:錨定行首
$:錨定行尾
\<或\b:錨定詞首,其後面的任意字元必須作為單詞首部出現
\>或\b:錨定詞尾,其前面的任意字元必須作為單詞尾部出現
\B:非單詞的開頭或結尾
^$:空白行

分組() :
(ab)* : 匹配ab這個分組出現任意次
\1:引用第一個左括弧以及與之對應的右括弧所包括的所有內容,同理還有\2,\3

特殊子字元類:
[:alnum:] :任何字母和數字
[:alpha:] :任何字母
[:cntrl:] :控制字元. 在ASCII表中對應八進制000 到 037, 和177 ('DEL').
[:digit:] :任何數字
[:graph:] :匹配列印字元,相當於'[:alnum:]' +'[:punct:]'.
[:lower:] :小寫字母
[:print:] :可列印字元,相當於 '[:alnum:]', '[:punct:]', 和space.
[:punct:] 標點符號,'! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ' { | } ~'
[:space:] 空白字元,tab, newline, vertical tab, form feed, carriage return, and space.
[:upper:] 大寫字母
[:xdigit:] 任何16進制的數字,相當於[0-9a-fA-F]
所以:^[[:space:]]*$ :匹配沒有任何內容的行

需要注意:[]中的特殊字元如.已經失去了其特殊含義,和方括弧中的普通字元[abc]一樣。

『柒』 linux 正則表達式怎麼匹配

php">一.linux文本查找命令
在說linux正規表達式之前,還介紹下linux中查找文本文件常用的三個命令:
1.grep:最早的文本匹配程序,使用POSIX定義的基本正則表達式(BRE)來匹配文本。
2.egrep:擴展式grep,其使用擴展式正規表達式(ERE)來匹配文本。
3.fgrep:快速grep,這個版本匹配固定字元串而非正則表達式。並且是唯一可以並行匹配多個字元串的版本。
如下簡單的介紹grep命令:
語法格式:
grep[options...]pattern-spec[files...]
用途:
匹配一個或多個模式的文本行。
options:
-E:使用擴展正則表達式進行匹配,grep-E或取代egrep命令。
-F:使用固定字元串進行匹配,grep-F或取代傳統的fgrep命令。
-e:通常第一個非選項的參數認為是要匹配的模式,也可以同時提供多個模式,只要將其放入單引號,並用換行字元分隔他們。
模式以減號開頭時,為防止混淆其為選項,-e選項說明其後的參數為模式,即使他以減號開頭。
-f:從pat-file文件讀取模式作為匹配。
-i:模式匹配時忽略大小寫差異。
-l:列出匹配模式的文件名稱,而不是列印匹配的行。
-q:靜默的,如果匹配成功,不將匹配的行輸出到標准輸出;否則即是不成功。
-s:不顯示錯誤信息,通常與-q並用。
-v:顯示不匹配模式的行。
說明:可以同時查找多個文件中的內容,當指定多個文件時,每個顯示出的文件行前會有文件名加一個冒號標識其來自哪個文件。
可以使用多個-e或-f選項,建立要查找的模式列表。
二.正則表達式簡要介紹
1.正則表達式的組成
(1).一般字元:沒有特殊意義的字元
(2).特殊字元(meta字元):元字元,有在正則表達式中有特殊意義
2.如下講下正則表達式中的常見meta字元
(1).POSIXBRE與ERE中都有的meta字元:
:通常用於打開或關閉後續字元的特殊含義,如(...)與{...}
.:匹配任何單個字元(除NUL)
*:匹配其前的任何數目或沒有的單個字元,例:.表示任一字元,則.*匹配任一字元的任意長度
^:匹配緊接著的正則表達式,BRE中僅在正則表達式的開頭有特殊的含義,ERE中在任何位置都有特殊含義
$:匹配前面的正則表達式,在字元串或者行結尾處。BRE中僅在正則表達式的結尾處有特殊的含義,ERE中在任何位置都有特殊含義
[]:匹配方括弧內的任一字元,其中可用連字元(-)指的連續字元的范圍;^符號苦出現在方括弧的第一個位置,則表示匹配不在列表中的任一字元,
(2).POSIXBRE中才有的字元:
{n,m}:區間表達式,匹配在它前面的單個字元重現的次數區別。{n}指重現n次;{n,m}指重現n至m次;
():保留空間,可以將最多9個獨立的子模式存儲在單個模式中。如(ab).*1:
指匹配ab組合的兩次重現,中間可存在任意數目的字元。
:重復在(與)方括弧內第n個子模式至此點的模式。
(3).POSIXERE中才有的字元:
{n,m}:與BRE的{n,m}功能相同
+:匹配前面正則表達式的一個或多個擴展
?:匹配前面正則表達式的零個或一個擴展
|:匹配|符號前或後的正則表達式
():匹配方括弧括起來的正則表達式群
(4).方括弧([])表達式
4.1.字元集[::]
標識字元集,有如下幾種:
[::alnum]
:數字字元
[:digit:]
:數字字元
[:punct:]
:標點符號字元
[:alpha:]
:字母字元
[:graph:]
:非空格字元
[:space:]
:空格字元
[:blank:]
:空格與定位字元
[:lower:]
:小寫字母字元
[:upper:]
:大寫字母字元
[:cntrl:]
:控制字元
[:print:]
:可顯示的字元
[:xdigit:]
:16進制數字
4.2.排序符號
指將多個字元視為一個符號,如[.ch.]即將ch視為一個符號
4.3.等價字元
認為多個字元相等,如[=e=]在法文的locale里,可匹配於多種與e相似的字元,此處不再列出。
說明:這三種構造除其自身的方括弧之外,還必須使用額外的方括弧括起來。
例:[[:alpha:]!]:匹配任一英文字母或感嘆號。
[[.ch.]:匹配ch排序元素,而不匹配單獨的字母c或h.
3.簡單正規表達式匹配案例
china:匹配此行中任意位置有china字元的行
^china:匹配此以china開關的行
china$:匹配以china結尾的行
^china$:匹配僅有china五個字元的行
[Cc]hina:匹配含有China或china的行
Ch.na:匹配包含Ch兩字母並且其後緊跟一個任意字元之後又有na兩個字元的行
Ch.*na:匹配一行中含Ch字元,並且其後跟0個或者多個字元,再繼續跟na兩字元
二.實例
如下通過常用實例來學習BRE和ERE匹配,源文件url.txt內容如下:
www..comhttp://www..comhttps://www..comhttp://wwwcom.com
1.url匹配
匹配以http或者https開頭,並且其後為:並且含有.的串
BRE匹配:
grep'^https{0,1}.*..*'url.txt
ERE匹配:
grep-E'^https?.*..*'url.txt
匹配結果如下:
http://www..comhttps://www..com
2.Email匹配
示例文件內容為:
[email protected]@[email protected]@gmail.com
@@.com
匹配以字母數字或者下劃線開頭的多個字元,其後有一個@之後有多個字母數字或者下劃線,其中有一個.號
grep'^[[:alpha:][:digit:]_]*@[[:alpha:][:digit:]]*..*'email.txt
匹配結果:
[email protected]@[email protected]
先到這里,後續再接著寫。

『捌』 linux裡面的規則表達式、正則表達式、擴展表達式的定義

規則表達式=正則表達式
,都是
regular
expression
他的定義是
"是用某種模式去匹配一類字元串的一個公式"
擴展表達式我想你說的應該是
擴展正則表達式
他是正則表達式規范的補充
這個就沒什麼定義了
也就是添加了一些范圍匹配和通配匹配
比如
.
[a-z]

這些都是擴展正則表達式的范圍
另外說一點
grep命令支持的正則表達式是標准正則表達式
,而
egrep
(grep
-E)
支持擴展正則表達式匹配
事實上
目前大部分使用的正則表達式都是擴展正則表達式

『玖』 linux 正則表達式中 ^[^d] 怎麼理解

最前的
^
表示開頭.就是之前再沒有其它的.
[
]之間的^
表示非,就是[^\d]就是非數字,如果是[^d]就只是非d這個字母.

『拾』 Linux命令詳解之正則表達式


特殊字元
^
行首
$
行尾
.
任意一個字元
[]
內含字元范圍,加^表示反向字元范圍,在該范圍內任何一個字元都可以匹配
(若要恢復普通用法,可在其前加轉義字元/)
[:alnum:]
字母與數字字元
[:alpha:]
字母
[:ascii:]
ascii字元
[:blank:]
空格或製表符
[:cntrl:]
ascii控制字元
[:digit:]
數字
[:graph:]
非控制、非空格字元
[:lower:]
小寫字母
[:print:]
可列印字元
[:punct:]
標點符號字元
[:space:]
空白字元,包括垂直製表符
[:upper:]
大寫字母
[:xdigit:]
十六進制數字
其他字元
?
至多匹配一次
*
必須匹配0次或多次
+
必須匹配1次或多次
{n}
必須匹配n次
{n,}
必須匹配n次或n次以上
{n,m}
必須匹配在n到m次之間,包括n和m
示例
查找當前目錄下所有以一位數字命名且以.txt結尾的文件,並進行顯示
find
.-name
[[:digit:]]/.txt
-ok
ls
-l
{}
/;
查找所有以.txt結尾的文件並顯示
find
.
-name[[:alnum:]]*/.txt
-ok
ls
-l
{}
/;

熱點內容
php批量查詢 發布:2025-01-16 10:43:38 瀏覽:917
適合搭建代理伺服器的雲 發布:2025-01-16 10:42:49 瀏覽:428
我的世界手機版伺服器怎麼注冊 發布:2025-01-16 10:41:30 瀏覽:614
小米雲電視伺服器 發布:2025-01-16 10:37:03 瀏覽:350
php開源wiki 發布:2025-01-16 10:27:19 瀏覽:189
sql加欄位備注 發布:2025-01-16 10:21:49 瀏覽:565
線割編程教程 發布:2025-01-16 10:21:03 瀏覽:18
谷歌瀏覽器緩存刪除 發布:2025-01-16 10:19:36 瀏覽:414
資料庫txt 發布:2025-01-16 10:16:41 瀏覽:457
小米賬號王者傳奇腳本掛機 發布:2025-01-16 10:07:25 瀏覽:917