




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
可以作為特殊符號的原子有:人 匹配行首。例如,“人他”匹配出現(xiàn)在行首的“他”字。值得注意的是,這個符號僅僅表示“行首”這個位置,與它相匹配的字符串長度為0;$ 匹配行末。與“人”相似,它僅表示“行末”這個位置。例如,“。$”匹配出現(xiàn)在行末的句號;< 匹配詞首。詞首的定義是緊接在非字母數(shù)字之后的第一個字母數(shù)字或下劃線(_),漢字永遠是詞首。與“人”相似,它僅表示“詞首”這個位置,匹配長度為0;> 匹配詞尾。詞尾是指緊接在字母數(shù)字或下劃線之后的第一個非字母數(shù)字下劃線,任一漢字之后也屬于詞尾。詞尾的匹配長度也是0;\t TAB字符;\e ESC字符;通配符是用一個符號(或幾個符號組合)來匹配某一類滿足條件的字符??梢允褂猛ㄅ浞麃聿檎易址钦齽t表達式的一大特點。TextPro支持下列通配符(注意大小寫的區(qū)別):半角部分:.(句點)匹配任何字符;\a匹配任意英文字母;\~a匹配除字母外的任意字符;\d匹配任意數(shù)字;\~d匹配除數(shù)字外的任意字符;\h匹配任意詞首字符(字母及下劃線);\~h匹配除字母及下劃線以外的任意字符;\l匹配任意小寫字母;\~l匹配除小寫字母外的任意字符;\o匹配任意八進制數(shù)字相匹配(0-7);\~o匹配除八進制數(shù)字外的任意字符;\p匹配任意半角標點符號;\~p匹配除半角標點以外的任意字符;\s匹配任意空白字符(空格、TAB);\~s匹配任意非空白字符;\u匹配任意大寫字母;\~u匹配除大寫字母外的任意字符;\w匹配可成詞的字符(字母、數(shù)字及下劃線)\~w匹配成詞字符外的任意字符;\x匹配任意十六進制數(shù)字(0-9,a-f,A-F);\~x匹配除十六進制數(shù)字外的任意字符;全角部分:\f 匹配任意雙字節(jié)字符(漢字或全角符號);\~f 匹配任意單字節(jié)字符;\A 匹配任意全角ASCII字符;\b 匹配任意收錄在BIG5碼集中的雙字節(jié)字符;\?b 匹配未收錄在BIG5碼集中的雙字節(jié)字符;\c 匹配任意漢字(不包括符號);\?c 匹配非漢字的雙字節(jié)字符;\D 匹配地支字符(子丑寅卯??);\g 匹配收錄在GB碼集中的雙字節(jié)字符;\~g 匹配非收錄在GB碼集中的雙字節(jié)字符;\G 匹配大寫希臘字母\j 匹配日文片假名\J 匹配日文平假名\k 匹配小寫希臘字母\K 匹配日文平假名;\m 匹配數(shù)學符號;\n 匹配中文數(shù)字(一二三四??);\N 匹配大寫中文數(shù)字(壹貳叁肆??);\P 匹配全角標點符號;\r 匹配小寫俄文字母;\R 匹配大寫俄文字母;\s 匹配數(shù)學符號;\S 匹配中文序號(1.2.3.4.……);\T 匹配天干字符(甲乙丙丁??);\V 匹配豎排標點符號;\y 匹配拼音字符;\Y 匹配注音字符;\Z 匹配制表字符;字符集是用一對方括號[]括起來的字符串,用以匹配字符集中的任何一個字符。比如“[他她它]”匹配單數(shù)第三人稱代詞。如果方括號中的第一個字符是‘人”,則匹配除指定字符外的任何其它字符。在字符集中,還可以用”-”表示字符的范圍,例如“[a-z]”匹配任何小寫字母。注意盡量不要用“-”表示漢字的范圍,因為漢字并沒有公認的次序,TextPro目前是依據(jù)漢字內(nèi)碼來確定范圍的。如果兩個漢字的內(nèi)碼相差很大,將消耗大量的內(nèi)存,運算也將非常緩慢。為了避免這種現(xiàn)象,TextPro中限制表示范圍的起始與終止?jié)h字必須位于同一區(qū)。如果字符集要包括字符“]”、“人”、“-”或“\”,可以在這些字符前加“\”。例如“[\Axyz]”匹配”人”,”x”,”y”或”z”。另外需要特別指出的是,前面所述的特殊字符及通配符,除了”\t”和”\e”外,在字符集中均作為普通字符處理。字符集的匹配速度比通配符慢,所以應(yīng)該盡可能地使用通配符。例如要查找半角數(shù)字時,應(yīng)該使用\d,而不要使用[0-9],雖然后者也是正確的。子表達式是指用一對括?。ǎ├ㄆ饋淼牧硗庖粋€正則表達式。使用子表達式有兩種主要的目的。一是改變匹配的優(yōu)先級,例如“中|西文軟件”匹配的是“中”或“西文軟件”,但是“(中|西)文軟件”匹配的是“中文軟件”或“西文軟件”。使用子表達式的另一個目的,是引用前面匹配到的內(nèi)容。例如要查找形如“哈哈”、“嘻嘻”的疊字詞,可以寫“(\c)\l”。這里“(\c)”匹配任意漢字,而“\1”則引用匹配到的內(nèi)容°TextPro允許在一個查找串包含最多9個子表達式,它們的匹配內(nèi)容可以分別用“\1”,“\2”...“\9”來加以引用。子表達式也可以嵌套另一個子表達式,子表達式左括號出現(xiàn)的序號為這個表達式的編號。另外需要注意的是,只能引用已經(jīng)匹配了的子表達式,象上面的例子不可以寫成“\1(\c)”,同理,也不應(yīng)該引用不同分支中的子表達式,因為一個正則表達式中只可能有一個分支被匹配。正則表達式的另外一個強大的功能是重復匹配的能力。前述的任何一種“原子”之后,都可以指定一個重復指示符。下面列出各種重復指示符:? 表示前一“原子”可有可無(重復0或1次)。例如“我們?”匹配“我”或“我們”;+ 表示前一“原子”至少匹配一次。例如“\d+”匹配任何一個無符號整數(shù);* 表示前一“前子”重復匹配0或多次。例如“\h\w*”表示許多高級語言對“變量”的定義:以字母或下劃線開頭,后接任意多個字母數(shù)字或下劃線;{n} 表示前一“原子”重復匹配n次。例如“\c啦{3}”匹配“嘩啦啦啦”或“呼啦啦啦”等;{n,m} 表示前一“原子”重復匹配n至m次,其中n<=m。如果n>m,TextPro將自動交換m與n的值;{n,} 至少重復匹配n次,相當于{n,無窮大};{,m} 至多重復匹配m次,相當于{0,m};{} 重復任意多次,相當于*。在前面所述的各種重復指示符中,如果重復的次數(shù)不定,TextPro將匹配盡可能長的目標串(但最多不超過32767次,這是TextPro內(nèi)設(shè)定的上限)。例如有一字符串“你好,我好,大家好”,表達式“你.*好”將匹配整個字符串,而不是“你好”或“你好,我好”。如果需要匹配盡可能短的目標串,可以采用前述的最后四種形式,并在“{”之后加上“-”號。上例中的表達式如改為“你.{-}好”,則匹配串為“你好”。{-n,} 至少重復匹配n次,匹配次數(shù)盡可能少;{-,m} 至多重復匹配m次,匹配次數(shù)盡可能少,相當于{-0,m};{-} 重復任意多次,類似于*,但匹配次數(shù)盡可能少。重復指示符只對緊鄰在其前的“原子”起作用,例如“你好+”將匹配“你好”,“你好好”??。但是不會匹配“你好你好”。如果要重復匹配一組原子,可以使用括號(子表達式),如“(你好)+”就會匹配“你好你好”。需要指出的是,重復指示符與引用子表達式具有不同的含義。重復指示符是重復“匹配”,至于匹配的內(nèi)容則可以不同;而引用子表達式則是重復匹配的內(nèi)容。例如,“\d{2}”可以匹配任何一個兩位數(shù)的整數(shù),但是“(\d)\l”只能匹配“11”、“22”、“33”等數(shù)字相同兩位數(shù)。當然,也可以重復引用子表達式,如“(\d)\1*”可以匹配“2”,“33”、“111”等各位數(shù)全同的整數(shù)。如前所述,在正則表達式中,以下字符“*?+.()[]{}\”具有特殊的含義。如果需要查找這些字符本身,可以在該字符前加一個反斜杠“\”。例如查“\def”可以輸入“\\def”。特殊字符在進行替換時,也可以在替換串中使用一些特殊字符。目前TextPro支持的特殊字符有:\n 插入回車符??梢杂眠@個字符把某些行分成兩行或多行;\b 向前刪除一個字符。當這個字符位于替換串之首時,將刪除匹配串之前的一個字符。若匹配串位于行首,將使匹配串所在行與前一行相合并;\d 向后刪除一個字符。當這個字符位于替換串之末時,將刪除匹配串之后的一個字符。若匹配串位于行末,將使匹配串所在行與下一行相合并;\e 插入一個ESC字符;\t 插入一個TAB字符;也可以在替換串中引用查找串中的匹配到的子表達式。引用方法也是用“\1”、“\2”等。另外還可以用“\0”或“&”來引用整個匹配到的字符串。替換函數(shù)在替換串中還可以使用一組替換函數(shù),來對查找到的內(nèi)容做某種變換。替換函數(shù)的形式是\f{...},其中“f”是函數(shù)名,它是一個半角英文字母?;ɡㄌ栔械膬?nèi)容是函數(shù)的參數(shù)。例如,\u{a}表示把“a”轉(zhuǎn)換為大寫。目前TextPro支持三個替換函數(shù),在后繼版本中逐步增加。
\u\l\U轉(zhuǎn)換為大寫\u\l\U轉(zhuǎn)換為小寫首字母大寫替換函數(shù)的參數(shù)部分可以略去不寫。如果略去,默認的參數(shù)是查找到的內(nèi)容,即\0。例如,要把文中所有英文單詞的首字母大寫,可以查找“v\a+>”,并替換為“\U{\0}”,替換串也可以簡寫為“\U”4.自定義替換功能TextPro4.5以后提供了自定義替換功能。所謂自定義替換,其實是一張?zhí)鎿Q表,它把某個字符串對應(yīng)轉(zhuǎn)換為另外一個字符串,比如把漢字轉(zhuǎn)換為拼音。替換表是一個文本文件,它的每一行指定一個轉(zhuǎn)換關(guān)系。行由兩欄組成,欄與欄之間用一個(或多個)空格(或TAB)分開。第一欄是源字符串,第二欄是目標字符串。如果源串或目標串中需要包含空格,可以把串用半角的單引號或雙引號括起來。例如把漢字轉(zhuǎn)為拼音的自定義替換表可以這樣寫中zhong1國"guo2"大da4替換表中的最好不要有重復的源串,如有重復,TextPro只取最后出現(xiàn)的那對轉(zhuǎn)換關(guān)系。替換表準備好后,選擇菜單“設(shè)置自定義替換表”來設(shè)置替換表。TextPro允許定義多達10張?zhí)鎿Q表。首先選擇一個位置,使那一行被選中,然后按“文件”按鈕,即可裝入這張?zhí)鎿Q表。你也可以為這張?zhí)鎿Q表起個名字,按“命名”按鈕可以輸入名稱?!斑^濾”按鈕與替換函數(shù)有關(guān),等一下再作介紹。設(shè)置完以后,按“退出”鈕結(jié)束。現(xiàn)在,選擇菜單“編輯|自定義替換”,可以看到彈出的下級菜單中有一項功能被開啟了,菜單項的名稱就是剛才給替換表起的名稱(如果沒有起名稱,默認的菜單名稱是“自定義替換n”)。選擇這項功能,將把出現(xiàn)在當前文件中的所有源串按替換表替換為目標串。TextPro支持批量正則替換功能。使用時先在“設(shè)置”菜單下選“批量正則替換表”然后在編輯菜單下選“批量正則替換”即可。正則替換表的格式跟自定義替換表差不多,只不過用的是正則表達式。另外,首字符為“#”或“%”(要頂格寫)做為注釋行處理。附上一個去除HTML標志的正則替換表(remove_html_tags.txt)作為例子。這個功能也可以在批處理中使用。注意先設(shè)好替換表,不然選不到這個功能。有的時候,上述簡單的自定義替換功能是不夠的。例如,用戶可能希望只把出現(xiàn)在括號內(nèi)的源串替換為目標串。這種文本處理可以通過在查找/替換中使用自定義替換表來解決。在查找/替換功能中使用自定義替換表的替換函數(shù)是\Tn,其中n是0-9的數(shù)字,注意n為0表示第10張?zhí)鎿Q表。如果略去n,其效果相當于\T1,即使用第一張?zhí)鎿Q表。例如要把所有放在方括號中的漢字替換為拼音,可以查找“\[(\c)\]”,替換為“\T{\1}”。即把第一個子表達式的匹配內(nèi)容按自定義替換表轉(zhuǎn)換。注意,如果\T函數(shù)的參數(shù)不在替換表的源串中,\T函數(shù)的結(jié)果與源串相同,即不做任何變換。有些情況下,用戶可能希望只使用替換表的一部分內(nèi)容。還是以拼音為例,前面給出的替換表中包含了拼音的音調(diào),如果在替換時不希望加上這些音調(diào)數(shù)字,可以使用“過濾”功能。所謂過濾,其實是用一個正則表達式去分析替換表的目標串,并把其中的某個子表達式取出來。使用“過濾”時,在“設(shè)置自定義替換表”對話框中,點“過濾”按鈕,在彈出的對話框中填入一個正則表達式。再以拼音為例,表達式可以寫為“(\a+)(\d?)”,其中第一對括號中的是不含音調(diào)的拼音,第二對括號是音調(diào)。在調(diào)用\T函數(shù)時,TextPro會在目標串中查找這個正則表達式。但是如何把其中的子表達式取出來呢?\T函數(shù)還有一個可選的下標,取第n個子表達式的值就寫作\T{...}[n]。所以,把放在方括號中的漢字替換為不帶調(diào)的拼音,可以查找“\[(\c)\]”,替換為“\T{\1}[1]”例一:要在文本文件中刪除空行操作辦法:用替換功能,在“查找”中輸入“人$”,在替換中輸入“\d”。分析:“人$”匹配行首接行末,即本行無字,屬于空行;在替換時輸入'\d”,表示將找到的兩個漢字替換成空串,并刪除下一個字符。由于文件中每行只有兩個漢字,刪除下一個字符其實就刪掉了行末的回車符,其結(jié)果把這些無用的行全部清除。例二:在TextPro的制作過程中,我們需要整理許多資料。例如簡轉(zhuǎn)繁的資料是一個文本文件,每行兩個漢字,前一個為簡體字,后一個為繁體字。但是有不少行簡繁體其實是同一個字,我們希望將其剔除。操作辦法:用替換功能,在“查找”中輸入“(\c)\1”,在替換中輸入“\d”。分析:“\c”匹配任一漢字,“\1”是引用子表達式,因此上面的正則表達式表示查找連續(xù)兩個相同的漢字。在替換時輸入“\d”,道理同上。例三:某文件由一些有用的資料及注釋組成。注釋單獨成行,并以“#”開頭。現(xiàn)在希望將所有的注釋行刪除。操作辦法:用替換功能,在“查找”中輸入“人#.*$”,在替換在輸入“\d”。分析:人匹配行首,八#表示行首有符號#,.*匹配#之后的所有字符,直到行末($)。這個表達式將整行匹配所有以#開頭的行。替換成“\d”將把這些行清除。例四:有一個從“輸入法生成器”反編譯出來的拼音表,其中有單字的拼音,也有詞組的拼音?,F(xiàn)在希望把單字的拼音和詞組的拼音分開。已經(jīng)文件的格式是每行一個字或詞組,行首是漢字或詞組,其后緊跟拼音。操作辦法:用替換功能,查找“Ac\c+\?f+”,替換為“\d”,就得到了一份單字的拼音表,另存為“單字.txt”后,按Ctrl+Z(UNDO)撤消剛才的操作,再用替換功能,查找“A\c\~f+",替換為“\d”,就得到了詞組的拼音表,可另存為“詞組.txt”。分析:“\c\c+\?f+”匹配行首以漢字開頭,跟著一個以上的漢字,再跟著一個以上任意半角字符的行,也就是所有的詞組行,替換為“\d”把這些行刪除,得到的是單字的拼音表;“a\c\?f+”匹配以一個漢字開頭,緊跟著一個以上任意半角字符,這些正好是單字的拼音行,刪除后即得詞組的拼音表。例五:以將一本辭典編為電子辭典的過程中需要將詞條的頁碼加上,這時正好辭典的目錄頁帶詞條的頁碼可供利用。我們可能用自定義替換來解決這個問題。操作辦法:1、 先將目錄文件做成詞條在前,空格后接頁碼的如下格式:【有為】p0535【有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國膠帶封箱機數(shù)據(jù)監(jiān)測研究報告
- 電梯故障診斷技術(shù)及其在商業(yè)領(lǐng)域的應(yīng)用
- 二零二五年度解除勞動合同關(guān)系及經(jīng)濟補償支付協(xié)議
- 二零二五年度服裝廠員工績效考核與晉升勞動合同
- 2025年度窗簾產(chǎn)品質(zhì)檢與認證合同
- 知識經(jīng)濟下的專利保護與風險防控策略研究
- 二零二五年度分戶房產(chǎn)分割與物業(yè)管理權(quán)移交合同
- 關(guān)于2025年度消防技術(shù)服務(wù)與消防產(chǎn)品研發(fā)合同匯編
- 二零二五年度月嫂服務(wù)合同及雇主滿意度提升計劃
- 二零二五年度租賃權(quán)合同糾紛代理詞協(xié)議
- 部編版八年級語文下冊全冊單元教材分析
- 粵劇中國漢族傳統(tǒng)戲劇人類非物質(zhì)文化遺產(chǎn)代表作宣傳課件
- 勞動項目一 剪指甲 教案
- 2024年吉林省中考語文真題
- DBJ50-T-271-2017 城市軌道交通結(jié)構(gòu)檢測監(jiān)測技術(shù)標準
- (高清版)TDT 1090-2023 國土空間歷史文化遺產(chǎn)保護規(guī)劃編制指南
- 全新養(yǎng)豬代養(yǎng)協(xié)議范本
- 冀教版(冀人版)二年級下冊小學美術(shù)全冊教案
- DZ∕T 0207-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 硅質(zhì)原料類(正式版)
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性測試題庫各版本
- 汽車制造企業(yè)物流自動化
評論
0/150
提交評論