正規表示式深入學習

2021-09-26 23:07:46 字數 2211 閱讀 9423

find .

/-name *

.txt //查詢./目錄下的任何txt檔案

*為萬用字元

.任意字元

.*任意個任意字元 可以是0個

.+至少是乙個任意字元

\. 轉義字元 匹配'.'

\d 數字

\d?0個或1個數字

\d+1

~n個數字

\d3個數字\d3

~5個數字

\d*0

~n個數字

\b 單詞邊界

\b 非單詞邊界

例如\bis\b 表示句子中的this is a pen;裡的單詞is會被識別 而不會識別this

裡的is

(abc) abc裡是乙個分組group 便於提取出來

abc只是c迴圈兩次

(abc)

分組在引用時分別為$1 $2 $3

忽略某分組 直接在分組內加上?:(

?:by)

.(ok)

=>by被忽略

量詞 數量 表示4個數字

元字元[

] 類是符合某些特性的物件 乙個泛指

[abc]把字元a或b或c歸為一類

例如'a1b2c3d4'

.replace

(/[abc]/g

,'x'

)=> x1x2x3d4

[\-]匹配\或-

元字元^ 為反向類 即不屬於某類內容 [

^abc] 表示不是字元a、b、c的內容

範圍類:

[a-z]表示從a-z的任意字元(閉區間)

還可以連寫 [a-za-z]

例子'2016-09-12'

.replace

(/[0-9-]/g

,'a'

)=>

'aaaaaaaaaa'

'2016-09-12'

.replace

(/[0-9]/g

,'a'

)=>

'aaaa-aa-aa'

^ 表示之後是開頭

$表示之前的是結尾

/reg/g g為全域性匹配,

i忽略大小寫,m多行搜尋

(即只要有換行符就算下一行

//gi 全域性匹配並且忽略大小寫

例1 匹配http:

//頭的jpg檔案位址

注意!斜槓和點需要轉移!

當我們要求把末尾是.jpg的http:

//的頭去掉,即/http:

例2 日期替換^(

/d)[/

-](\d)[/

-](\d)$ 可以使格式類似於2006/02

/03和2006-02

-03這種被提取出來,

其中每乙個組分別為$1 $2 $3

replace with $2

-$3-$1 可得 02-03

-2006

js裡的正規表示式:

方法1、

str.

replace

(reg,

'a')

reg正規表示式 'a'替換成a

方法2、

var reg =

newregexp

('\\bis\\b'

) 注意這個\要轉移

var reg =

newregexp

('\\bis\\b'

,'g'

) 全域性匹配

正規表示式裡分為原義文字字元、元字元(即有特殊含義的字元)

正規表示式視覺化

力扣import re;

lines=open(『file.txt』).readlines();

lines=[i.strip()for i in lines]#.strip() 移除首尾空格

ans=[i for i in lines if re.match(』^(((\d))|(\d-))(\d)-(\d)$』,i)]];

print(』\n』.join(ans))

深入學習正規表示式

分組 正規表示式裡括號的表示式為另外一組匹配規則 捕獲括號 被匹配的子字串可以在結果陣列的元素 1 n 中找到,或在被定義的 regexp 物件的屬性 1 9 中找到。舉例 let reg d d reg.exec 123456abcd 123456abcd abcd index 0,input 1...

深入學習正規表示式的使用

目標 深入學習正規表示式的寫法。字元類 abc a b 或 c 簡單類 abc 任何字元,除了 a b 或 c 否定 a za z a 到 z 或 a 到 z,兩頭的字母包括在內 範圍 a d m p a 到 d 或 m 到 p a dm p 並集 a z def23 d e 或 f 交集 a z ...

正規表示式學習

概念 正規表示式,就是用某種模式去匹配一類字串的乙個公式。基礎 下表列出了所有的元字元和對它們的乙個簡短的描述。簡單例子 vi 命令作用 s g 把乙個或者多個空格替換為乙個空格 s 去掉行尾的所有空格 s 在每一行頭上加入乙個空格 s 0 9 0 9 去掉行首的所有數字字元 s b aeio g ...