Learning Perl(Perl語言入門)學習筆記(8)

第九章      以正則表達式處理文本
 
1、  使用s/// 操作符可以進行“查找和替換”,其中前兩個斜線之間的是模式(pattern),後兩個斜線中間的是替換字符串(replacement string);替換字符串中可以使用匹配變量;使用選項修飾符 /g 可以進行全局替換;s/// 操作符有布爾型的的返回值,替換成功時爲“真”,否則爲“假”;
2、  Perl中,可以對模式匹配到的字符串利用“替換”的功能進行適當的大小寫轉換,這可能需要用到如下的轉義字符:
a)         \U  其後的所有字符轉換爲大寫;
b)        \L  將其後的所有字符轉換爲小寫;
c)        \E  關閉大小寫轉換的功能;
d)        \u  將其後字符串的首字符轉換爲大寫;
e)         \l   將其後字符串的首字符轉換爲小寫;
說明:使用 \L\u 可以將其後所有字符轉換爲小寫,但首字母大寫;上述所有轉換方式亦可用於任何雙引號內的字符串;
3、  split 操作符可以根據“分隔符(可以使用正則表達式的模式匹配)”拆開一個字符串並返回由該分隔符分隔開來的一串字段(子字符串),而分隔符本身不會出現在返回值中;如果兩個分隔符相鄰,則其間的內容返回爲空字段(子串),而split保留開頭處的空字段,但會捨棄結尾處的空字段;split 默認會以空白爲分隔符拆開$_
4、  split相反,join函數會把字符串片段(split中所說的子串或字段)使用“分隔符”連接在一起,此時的分隔符會出現在返回字符串中,但分隔符只在兩個片段間出現;join的分隔符不能是不能是正則表達式;
5、  在列表上下文中使用模式匹配操作符 m// 時,如果匹配成功,則其所返回的列表內容是所有匹配變量的內容,否則返回空列表;m// 操作符可以使用 /g 選項修飾符以讓模式匹配到字符串的每個可以匹配之功之處;這差不多類似於split 函數的相反功能;
6、  前述的四個量詞 * +、?、和{}在模式匹配時默認都是貪婪模式,即儘可能多的匹配字符串中的內容,即便是 ?在匹配時也是儘可能的“要匹配”;爲了取得相反的效果,即儘可能少的匹配,可以把使用到的量詞指定爲非貪婪模式;在量詞後緊跟一個問號“?”就可以使其工作在非貪婪模式下;非貪婪模式通常跟效率沒有直接關係;
7、  默認情況下,正則表達式都是用來匹配單行文本,但在模式後使用 /m 這個選項修飾符後可以實現模式的跨行匹配;
模式匹配中,圓括號具有記憶功能,如果僅想分組而不進行記憶,可以使用“(?:模式)”的格式進行;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章