最簡單的正規表示式

2021-09-30 20:29:15 字數 2823 閱讀 4863

最簡單的正規表示式

hi 能匹配的字串(舉例)hi him his this philips

只想要這個結果:\bhi\b \b[hh]i\b \b(h|h)i\b 那麼只匹配:hi

\d+匹配數字串 匹配結果:10000,1234567,222222,8888888等等

"\b"匹配乙個單詞的邊界

表示式:\bhi\b 能匹配:hi

"\b"匹配乙個單詞的非邊界

表示式:\bhi\b 能匹配:hi this

"\d"匹配乙個數字字元

表示式:\d 能匹配:12345

"\d"匹配乙個非數字字元

表示式:\d 能匹配:a a

"\w"匹配字母/數字/下劃線

表示式:\w 能匹配:123abc_

"\w"匹配除字母/數字/下劃線

表示式:\w 能匹配:@#$%

"^"代表字串的開頭

表示式:^hi 能匹配:hi him hidden

"$"代表字串的結束

表示式:hi$ 能匹配:hi chi orochi

表示式:^hi$ 只能匹配:hi

方括號"[ ]"匹配指定一堆字元中的乙個。

表示式:^[a-z]at$ 能匹配的字串(舉例):cat mat zat

表示式:^[a-za-z]at$ 能匹配的字串(舉例): cat cat mat

表示式:^[aeiou]at$ 能匹配的字串(舉例):aat eat iat

方括號"[^]"不匹配這個集合中任何乙個字元。

表示式:^[^xyz]at$ 不能匹配的字串:xat yat zat

"+"表示前一模式可以被重複1次或n次。

表示式:^go+gle$ 能匹配的字串(舉例):gogle google goooooogle

表示式:^g[aeiou]+gle$ 能匹配的字串(舉例):gagle gegle geagle geaeaipueagle

"*"表示前一模式可以被重複0次或n次。

表示式:^go*gle$ 能匹配的字串(舉例):ggle google gooooogle

"?"表示前一模式可以被匹配0次或1次。

表示式:^go?gle$ 能匹配的字串(舉例):ggle gogle

""表示前一模式模式可以被重複x次。

表示式:^gogle$ 能匹配的字串 google

""表示前一模式模式可以被重複x到y次。

表示式:^gogle$ 能匹配的字串(僅3個):google gooogle goooogle

""表示前一字元模式可以被重複至少x次。

表示式:^gogle$ 能匹配的字串(舉例):google gooogle gooooooogle

"( )"可以指定一堆字元來匹配乙個模式。分組

表示式:^(very )*large$ 能匹配的字串(舉例):large very very large very large

分支"|"用來指定幾個規則只要匹配乙個規則即成匹配。

表示式:^com$|^org$|^net$ 能匹配的字串(僅3個):com org net

表示式:^abc.(com|org|net)$ 能匹配的字串(僅3個):abc.com abc.org bac.net

如果要匹配"[""^""+"")"等等有特殊含義的字元,可以用"\"做轉義。

表示式:^1\*\(2\+3\)=6$ 能匹配的字串(僅1個):1*(2+3)=6

其它 表示式 .* 就是單個字元匹配任意次,即貪婪匹配。 

表示式 .*? 是滿足條件的情況只匹配一次,即最小匹配.

(c# regex中replace方法的簡單實用)

/*

使用正則替換字串

*/

stringmsg = "你aaa好aa哈哈a";

msg = regex.replace(msg, @"a+", "a");

console.writeline(msg); //你a好a哈哈a

/* 替換中使用提取組

在替換中也是可以使用提取組的 $表示提取組 $1表示組1

(引用正規表示式提取的字串)

*/ stringmsg2 = "hello 'welcome' to 'china'";

msg2 = regex.replace(msg2, "'(.+?)'", "[$1]");

console.writeline(msg2); //hello [welcome] to [china]

/* 隱藏手機號碼

*/ stringmsg3 = "文天祥12345678911";

msg3 = regex.replace(msg3, "([0-9])[0-9]([0-9])", "$1****$2");

console.writeline(msg3); //文天祥1234****911

/* 隱藏郵箱名

*/ stringmsg4 = "[email protected]";

msg4 = regex.replace(msg4, "(.+?)@", "*****");

console.writeline(msg4); //*****qq.com

posted @

2019-01-23 00:18

kevin860 閱讀(

...)

編輯收藏

實現最簡單的正規表示式

如 j smi?可以匹配 john smith 請用c語言實現如下函式 void scan const char psztext,const char pszname 以下並未完全按要求實現,但意思到了。gcc 4.5.2 include include using namespace std ch...

最簡單的正規表示式例題

import re str1 中文名 貝拉克 海珊 歐巴馬,外文名 barack hussein obama ii,別名 歐巴馬,國籍 美國,民族 德裔族,出生地 美國夏威夷州檀香山,出生日期 1961年8月4日,職業 政治家 律師 畢業院校 哥倫比亞大學 哈佛大學,信仰 新教,主要成就 1996年...

正規表示式簡單語法及常用正規表示式

基本符號 表示匹配字串的開始位置 例外 用在中括號中 時,可以理解為取反,表示不匹配括號中字串 表示匹配字串的結束位置 表示匹配 零次到多次 表示匹配 一次到多次 至少有一次 表示匹配零次或一次 表示匹配單個字元 表示為或者,兩項中取一項 小括號表示匹配括號中全部字元 中括號表示匹配括號中乙個字元 ...