關於net正則總是看了又忘,忘了又看,一串複雜的東西自己也沒看懂,沒關係,今天再來開始,一點一點來,不斷去做學習
名 字空間簡介
在名字空間中僅僅包含著6個類和乙個定義,它們是:
capture: 包含一次匹配的結果;
capturecollection: capture的序列;
group: 一次組記錄的結果,由capture繼承而來;
match: 一次表示式的匹配結果,由group繼承而來;
matchcollection: match的乙個序列;
matchevaluator: 執行替換操作時使用的**;
regex: 編譯後的表示式的例項。
regex類中還包含一些靜態的方法:
escape: 對字串中的regex中的轉義符進行轉義;
ismatch: 如果表示式在字串中匹配,該方法返回乙個布林值;
match: 返回match的例項;
matches: 返回一系列的match的方法;
replace: 用替換字串替換匹配的表示式;
split: 返回一系列由表示式決定的字串;
unescape:不對字串中的轉義字元轉義。
簡單匹配
我們首先從使用regex、match類的簡單表示式開始學習。
match m = regex.match("abracadabra", "(a|b|r)+");
我們現在有了乙個可以用 於測試的match類的例項,例如:if (m.success)...
如果想使用匹配的字串,可以把它轉換成乙個字串:
console.writeline("match="+m.tostring());
這 個例子可以得到如下的輸出: match=abra。這就是匹配的字串了。
private解釋一下每個符號的意思void button1_click(object
sender, eventargs e)
}
x|y匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配 "zood" 或 "food"。
( )標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 \( 和 \)。
*匹配前面的子表示式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於。
+匹配前面的子表示式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 。
?匹配前面的子表示式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等價於 。
n 是乙個非負整數。匹配確定的 n 次。例如,'o' 不能匹配 "bob" 中的 'o',但是能匹配 "food" 中的兩個 o。
n 是乙個非負整數。至少匹配n 次。例如,'o' 不能匹配 "bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o' 等價於 'o+'。'o' 則等價於 'o*'。
m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o" 將匹配 "fooooood" 中的前三個 o。'o' 等價於 'o?'。請注意在逗號和兩個數之間不能有空格。
字串的替換
簡單字串的替換非常直觀。例如下面的語句:
string s = regex.replace("abracadabra", "abra", "zzzz");
現在我們來看乙個比較複雜的字串替換的例子:
string s = regex.replace(" abra ", @"^\s*(.*?)\s*$", "$1");
這個語句返 回字串abra,其前導和字尾的空格都去掉了。
$匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字元本身,請使用 \$
^匹配輸入字串的開始位置,除非在方括號表示式中使用,此時它表示不接受該字元集合。要匹配 ^ 字元本身,請使用 \^。
\s匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
\s匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。
.匹配除換行符 \n之外的任何單字元。要匹配 .,請使用 \。
$匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字元本身,請使用 \$。
另外值得一提的是$1在字串替換方面的使用,它表明替換字串只能包含被替換的字串。
面的模式對於刪除任意字串中的前導和後續空格都非常有用
另外值得一提的是$1在字串替換方面的使用,它表明替換字串只能包含被替換的字串。這句話是啥意思我也沒理解,希望有人看到能告訴我一下
mysql 第一天 MySQL 系列第一天
mysql 系列第一天這篇文章是黑馬程式設計師 mysql 教程的筆記,好好學習哦。和 mysql 資料庫的互動 客戶端單向連線認證 連線伺服器,認證身份。mysql 資料庫屬於 c s 架構,所以開啟伺服器程式後,需要通過客戶端連線它。mysql 會自帶乙個客戶端程式,可以直接輸入賬號和密碼即可連...
上班第一天
上班第一天啊,沒有去上班。早上起的很早,快走的時候突然很不想去。最後決定不去了。早上肯定也沒有什麼事情,無非就是開會,改革之類的話,這種話年年都說,年年都是老樣子。小寶說今天他訂婚,早上還去上班,誰知道是真是假呢。今天是正月初八,30年前我爸和我媽結婚了。現在過年只剩下最重要的一件事情,陪爸媽坐坐,...
開學第一天
今天開學的第一天,心裡些許興奮,畢竟我的第一步還是邁出了。上午大家都進行了簡短的自我介紹,從中了解的其他人的一些故事。每乙個來黑馬的學員背後都有這樣或者那樣的故事。倒是很欽佩其中的一位大姐,她頗具傳奇色彩。而且現在是一位兩歲孩子的母親,她現在所有的壓力或許比我們在座的任何一位學員壓力都要大的多。從她...