邊界
//\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 直接...