- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 字符及 * 來設定
您可能关注的文档
- 第六章_2保险基金及其运用.ppt
- 第六章WINS服务器配置与管理.ppt
- 第六章java数组及常用类(牛曼冰).ppt
- 第六章_出入境动物和动物产品的检疫.ppt
- 第六章_其他非生物因子.ppt
- 第六章_4大气污染的防护.ppt
- 第六章_聚合物的结构_8.ppt
- 第六章_网络编址IPv4文辑.ppt
- 第六章二元Ⅲ_Ⅴ族化合物的制备及其特征.ppt
- 第六章人寿保险产品.ppt
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
最近下载
- 四川省绵阳市江油市2020-2021学年九年级上学期期中物理试题(含答案).docx VIP
- (新版)危害因素辨识与风险防控题库及答案解析 .pdf VIP
- 2022年华南农业大学工作人员招聘考试试题及答案.docx VIP
- 人教版小学五年级下册体育教案全集.pdf VIP
- 国有企业基层组织工作条例(试行)在线测试.doc VIP
- 初中常见化学式的默写.docx VIP
- 《基础生态学》(第二版_牛翠娟、孙儒泳、李庆芬)课后思考题答案.doc VIP
- essbase BIEE__学习笔记.ppt VIP
- 初中物理《内能的利用》真题演练含解析.pdf VIP
- TF02EP全自动口服液灌装机使用规程.pdf VIP
文档评论(0)