讀取檔案的一段程式:
#! /usr/bin/perl -w
# mastering regular expressiona: chapter 2section 2.
# fiveth program
undef $/;
$textstr = <>;
print $textstr;
2.2.6.1 cooking special characters
原始文字轉換位html編碼:
2.2.6.2 separating paragraphs
需要強調的是:「^」和「$」通常匹配的不是邏輯行(logical line)的開頭和結尾,而是整個的字串的開頭和結束位置。
看起來的正則,像:
s/^\s*$//mg
m: 表示匹配多個邏輯行。
2.2.6.3 「linkizing」 an email address
s/\b(username regex\@hostnameregex)\b/$1<\/a>/g
2.2.6.4 matching the username and hostname
根據e-mail規則,可以得出:
「\w[-.\w]*\@\w+(\.\w+)」
使用者名稱是紅色部分;黑色部分為「@」;藍色部分為主機名;
請注意,我們把連字元放在字元組第一位,這樣確保它們被作為連字元,而不是用來表示範圍!
2.2.6.5 putting it together
完整程式如下:
#! /usr/bin/perl -w
# mastering regular expressiona: chapter 2 section 2.
# fiveth program
undef $/;
$textstr = <>;
$textstr =~ s/&/&/g;
$textstr =~ s//>/g;
$textstr =~ s/^\s*$//mg;
# turn email addresses into links ...
$textstr =~ sgix;
print $textstr;
其中的修飾符「x」表示使用者能夠以「寬鬆排列」編排正規表示式。
http url的基本形式是http://hostname/path,其中的/path部分是可選的。於是我們可以得到下面的正則:
正則習點 08
在這一節,我們要引入乙個新的概念 環視 lookaround 他的定義 不匹配任何字元,只匹配文字中的特定位置 positions 環視分兩種 順序環視 lookahead 和逆序環視 lookbehind 我們在後面的小段會給出詳細的介紹。現在我們只需要知道順序環視是從左到右檢視文字 而逆序環視是...
09 向量點積計算
總時間限制 1000ms 記憶體限制 65536kb 描述給定兩個n維向量a a1,a2,an 和b b1,b2,bn 求點積a b a1b1 a2b2 anbn。輸入第一行是乙個整數n。1 n 1000。第二行包含n個整數a1,a2,an。第三行包含n個整數b1,b2,bn。相鄰整數之間用單個空格...
JAVA 正則注意點
1.貪婪與非貪婪模 非貪婪模式 匹配字元越少越好 修飾匹配次數的特殊符號後再加上乙個 號 a d b 匹配整個表示式後,再進行非貪婪模式 d 直接試非貪婪模式 貪婪模式 預設,d 至少匹配一次 非貪婪模式 d 最少匹配次數,即1次 2.方向引用 方向引用 nnn 每一對 會分配乙個編號,使用 的捕獲...