正規表示式的具體應用

2021-10-06 10:42:48 字數 1297 閱讀 5804

在軟體構造實驗三中,有乙個讀取航班資訊檔案以構成乙個航班計畫項的集合,在這裡,由於要讀取一系列格式固定的檔案,並且對不合要求的檔案進行甄別,這裡就需要我們用到正規表示式,用正規表示式來匹配檔案內容。在這裡,我就想簡單介紹一下最簡單的正規表示式的使用方法

用來匹配自己所讀取的內容的字串一般用regex來表示

1.在寫regex的時候,如果有需要固定匹配的內容,就直接寫在字串內,譬如:

flight:2020-01-16,aa018

}

以上是一組標準的航班資訊,當我們要匹配第一行的內容時,顯然,前面的「flight:」是每一組航班資訊都相同的內容,因此,在我們自己寫regex的時候,就直接將「flight:」放在regex中即可。

2. 遇到需要匹配一定範圍內的數字或字母等時,用來表示

仍以上面檔案的第一行為例,在讀取年份的時候,我們需要匹配的是四位0-9的阿拉伯數字,在這裡,我們就用中括號來表示範圍,這裡就要用[0-9]來表示阿拉伯數字,相似地,需要小寫字母時,就用[a-z],大寫字母就用[a-z],如果需要組合,就直接在中括號內將這些全部寫上即可。注意:單個中括號內的所有內容只會進行一次匹配,例如[ab]只能匹配a或b,但是不能匹配ab,如果需要匹配多位,請見第三點內容

3.我們用大括號{}來代表我們需要匹配的位數,用下面這個**做乙個簡單的概括:

格式具體含義

恰好匹配n次,不多不少

至少匹配n次

至多匹配n次

匹配次數必須要在m-n之間

+匹配次數必須一次或多次即可

4.用「|」來表示「或」

在匹配具體月日的時候,會出現乙個問題,即月份最多只有12,因此如果直接用[0-9]就會出現類似「99」這樣的不合法月份出現,這裡我們就需要用「|」來表達或的功能,月份就可以表示為(0[1-9]|1[12]),這裡的小括號是在寫具體很長的式子的時候加上用來方便他人閱讀的,並沒有什麼實際意義

5.轉義字元「\」

這個用來將特殊字元轉化為普通字元,譬如中括號,在正常情況下是直接用來表示匹配內容的,但是有些文字需要我們直接匹配這個中括號的內容,那就需要在前面加上乙個反斜槓\來表達我就需要匹配乙個中括號的需求

假設str是自己讀取的需要匹配的內容,regex是自己編寫的正規表示式,則可寫為

boolean flag = str.match(regex);
如果flag為true則匹配成功,如果不是則說明匹配失敗

以上是正規表示式的最簡單的用法,在本次試驗中已經足夠使用,但是正規表示式實際上還有很多複雜的內容,這裡限於時間原因不再多寫,如果之後仍有空閒,將會補充更多的正規表示式的知識

正規表示式具體示例

密碼必須是包含大寫字母 小寫字母 數字 特殊符號 不是字母,數字,下劃線,漢字的字元 的8 16位組合 a za z0 9 a z0 9 w a za z w a z0 9 w a za z0 9 w 拆分解釋 匹配開頭 a za z0 9 匹配後面不全是 大寫字母或小寫字母或數字 的位置,排除了 ...

正規表示式應用

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d 非正浮點數 負浮點數 0 0 9 0 ...

正規表示式(應用)

在此頁面寫正規表示式,可以提供參考,和進行校驗 應用於前端 匹配任意長度的大小寫字母與數字 a za z0 9 匹配任意長度且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字與漢字 a za z0...