正規表示式二

2021-08-09 13:16:30 字數 2003 閱讀 8937

邊界

//\b指定單詞的邊界

//\b不匹配乙個單詞邊界

str = @"this cat scattered his food all over the room";

pattern = @"\bcat\b";

/* ^用來定義字串開頭

* $用來定義字串結尾

* ^緊跟在左方括號【的後面時,表示取非

* ^如果放在字符集的外面並位於乙個模式的開頭,將匹配字串的開頭

*/ str= @"

<?xml version='1.0' encoding='utf - 8' ?>

< sqlmap

namespace='tfransummaryitemmap'

xmlns:xsi=''

pattern = @"^\s*<\?xml.*\?>";

/*如果沒有(?m)不匹配

*否則三個注釋都將匹配

*/ str = @" sdfewgo230r

// make love

2342390

// init

weuhfsdoi

// done";

pattern = @"(?m)^\s*//.*$";

2.

str = @"pinging hong.com [192.168.1.10]";

//1.不一定合法如:999.999.999.999

pattern = @"\d

\.\d

\.\d

\.\d

";//2.不一定合法如:000.000.000.000

//使用子表示式(\d

\.)pattern = @"(\d

\.)\d

";//3.合法

pattern = @"(((\d

)|(1\d

)|(2[0-4]

\d)|(25[0-5]))\.)((\d

)|(1\d

)|(2[0-4]

\d)|(25[0-5])";

str = @"

date1:1999,

date2:2020";

//結果:19 2020

//解釋為19或者20\d

pattern = @"19|20\d

";//ok

pattern = @"(19|20)\d

";

3.回溯引用匹配

/*1.回溯引用只能用來引用模式裡的字表示式(用(和)括起來的正規表示式片段)

*2.回溯引用通常從1開始匹配\1,\2許多實現裡\0代表整個正規表示式

*///回溯引用匹配

str = @"

jfp3r0-43f3jdf

90349f3qjoq

";//錯誤結果:

//< h2 > 90349f3qjoq

pattern = @"<[hh][1-6]>.*?";

//正確結果:

pattern = @"<[hh]([1-6])>.*?";

str = @"this fo fo text, should be and and";

/*[ ]+匹配乙個或多個空格

* \w+匹配乙個或多個字母數字字元

* [ ]匹配隨後的空格

* \1這是乙個回溯引用,它代表者模式裡的第乙個字表示式

*/ pattern = @"[ ]+(\w+)[ ]+\1";

str = @"313-555-1244

123-555-9999

820-555-9000";

pattern = @"(\d)(-)(\d)(-)(\d)";

rep= @"($1) $3-$5";

/*結果:

* (313) 555-1244

* (123) 555-9999

* (820) 555-9000

*/

正規表示式(二) 正規表示式的切割

切割 還記得stirng的split的方法嗎.可以按照 空格,豎線 對字串進行切割.正規表示式的切割 是指,我們按照正規表示式的規則對字串來進行一些複雜的切割 比方說現在我想按照多個空格來進行切割 string str zhangsan lisei wangwu string reg s s在這裡代...

正規表示式(二)

三 正規表示式高階 1.後向引用 exp 匹配exp,並捕獲文字到自動命名的組裡,命名規則為從左向右 從1開始依次分組,分組0對應整個正規表示式 n 重複搜尋前面分組n匹配的文字 例如 b w b s 1 b,編號為1的分組為 b w b,表示乙個單詞,整個表示式用來匹配重複的單詞,像go go,或...

正規表示式 二

正規表示式 二 一 sed 可以將資料進行取代 刪除 新增 擷取 語法 sed nefr 動作 n 使用安靜模式。在一般sed的用法中,所有來自stdin的資料一般都會被列出到螢幕上。但是加上 n引數後,則只有經過sed特殊處理的哪一行才會被列出 e 直接在指令列模式上進行sed的動作編輯 f 直接...