第十二章正规表示法与文件格式化处理.pptVIP

第十二章正规表示法与文件格式化处理.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章正规表示法与文件格式化处理

第12章 正規表示法與 文件格式化處理;1、什麽是正規表示法 (Regular Expression, RE) 簡單的說,正規表示法就是處理字串的方法,它透過一些特殊符號的輔助,可以讓使用者輕易的達到『搜尋/刪除/取代』某特定字串的功能。 正規表示法基本上是一種『表示法』, 只要工具程式支援這種表示法,該工具程式就可以用來作為正規表示法的字串處理之用。 例如 vi, grep, awk ,sed 等工具,因為它們支援正規表示法, 所以就可以使用正規表示法的特殊字元來進行字串的處理。但例如 cp, ls 等指令並未支援正規表示法, 就只能使用 bash 自己本身的萬用字元而已。 注意: 『正規表示法與萬用字元是完全不一樣的東西!』 這很重要喔!因為『萬用字元 (wildcard) 代表的是 bash 操作介面的一個功能』,但正規表示法則是一種字串處理的表示方式!;2、基礎正規表示法 2.1 文字編碼系統 由計算機概??知識知道,計算機只會認識 0 和 1,所以記錄的資料 (包含文字) 也只有 0 與 1 而已,所以檔案的內容要被取出來查閱時,必須要經過一個編碼系統的轉換處理。而所謂的『編碼系統』就是一個類似于下面這個樣子的『字碼對照表 (編碼表)』:;當要寫入檔案的文字資料時,該文字資料會由編碼對照表將該文字轉成數字後,再存入檔案當中。同樣的,當需要將檔案內容的資料讀出時,也會經過編碼對照表將該數字轉成對應的文字後,再顯示到螢幕上。 這也就是為何瀏覽器上面如果編碼寫錯時,會出現亂碼的原因 -- 這是因為編碼對照表寫錯, 導致對照的文字產生誤差之故。 常用的英文編碼表為 ASCII 系統,這個編碼系統中的每個符號 (英文、數字或符號等) 都會佔用 1bytes 的記錄;中文字當中的編碼系統目前最常用的就是 big5 這個編碼表了,每個中文字會佔用 2bytes。 big5碼的中文字編碼對於某些資料庫系統來說是很有問題的,最後由國際組織 ISO/IEC 跳出來制訂了所謂的 Unicode 編碼系統 (UTF8或萬國碼),這個編碼系統統一了所有國家的不同編碼。;2.2 語系對正規表示法的影響 由於不同語系的編碼資料並不相同,所以會造成資料擷取結果的差異。 舉例來說,在英文大小寫的編碼順序中,zh_TW.big5 及 C 這兩種語系的輸出結果分別如下所示: LANG=C 時: 0 1 2 3 4 ... A B C D ... Z a b c d ...z LANG=zh_TW 時: 0 1 2 3 4 ... a A b B c C d D ... z Z 如果想要擷取大寫字元而使用 [A-Z] 時, 對於 LANG=C 是沒問題的 (因為是連續的),但如果 LANG=zh_TW.big5 時,會發現連同小寫的 b-z 也會被擷取出來 !! 所以使用正規表示法時,需要特別留意當時環境的語系為何, 否則可能會發現與別人不相同的擷取結果 !! 接下來所講解的正規表示法都是使用相容於 POSIX 的標準,也就是使用『C』這個語系資料來進行的。;另外,爲了避免語系不同所造成的編碼順序差異問題,系統中有定義了以下的一些特殊符號組合: ;2.3 grep 的一些進階選項;可以在 ~/.bashrc 內加上這行:『alias grep=‘grep --color=auto’』,這樣每次使用 grep,查找到的關鍵字都會以顏色標示了,很方便!;2.4 基礎正規表示法練習 練習大前提是: 語系已經使用『 export LANG=C 』的設定值 grep 已經使用 alias 設定成為『 grep --color=auto 』;2.4.1 搜尋特定字串 eg1. 從檔案當中取得 the 這個特定字串;2.4.2 利用中括號 [] 來搜尋集合字元 其實 [] 裡面不論有幾個字元,他都謹代表某『一個』字元 eg1. 搜尋 test 或 taste 這兩個單字 (它們有共通的 t?st 存在);eg4. 不想 oo 前面有小寫字元;2.4.3 行首與行尾字元『^』,『$』 eg1. 列出 the 只出現在行首的所在行;eg4. 找出行尾結束為小數點 (.) 的那一行;eg5. 找出哪一行是『空白行』;2.4.4 任意一個字元『.』與重複字元『*』 . (小數點): 代表『一定有一個任意字元』的意思 * (星號): 代表『重複前一個字元,0 到無窮多次』的意思,為組合形態。注意与 bash 的万用字元中 “*” 的区别 eg1. 找出 g??d 的字串 (即共有4個字元,起頭是 g 而結束是 d);eg2. 找出『至少2個 o 以上的字串』;×;2.4.5 限定連續 RE 字符範圍 {} 雖然可以利用 . 與 RE 字符及 * 來設定

您可能关注的文档

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档