第九章 正規表示式

2021-08-30 14:52:15 字數 1804 閱讀 1421

正規表示式

我們先回想一下,在沒有正規表示式的年代,我們是怎麼在硬碟上查詢檔案的.

肯定會使用 ? 和 * 字元來幫助查詢您正尋找的檔案。? 字元匹配檔名中的單個字元,而 * 則匹配乙個或多個字元。乙個如 'data?.dat' 的模式可以找到下述檔案:

data1.dat

data2.dat

datax.dat

datan.dat

如果使用 * 字元代替 ? 字元,則將擴大找到的檔案數量。儘管這種搜尋檔案的方法肯定很有用,但也十分有限。? 和 * 萬用字元的有限能力可以使你對正規表示式能做什麼有乙個概念,不過正規表示式的功能更強大,也更靈活。

在典型的搜尋和替換操作中,必須提供要查詢的確切文字。這種技術對於靜態文字中的簡單搜尋和替換任務可能足夠了,但是由於它缺乏靈活性,因此在搜尋動態文字時就有困難了,甚至是不可能的。

測試字串的某個模式。例如,可以對乙個輸入字串進行測試,看在該字串是否存在乙個**號碼模式或乙個信用卡號碼模式。這稱為資料有效性驗證。

替換文字。可以在文件中使用乙個正規表示式來標識特定文字,然後可以全部將其刪除,或者替換為別的文字。

根據模式匹配從字串中提取乙個子字串。可以用來在文字或輸入欄位中查詢特定文字。

使用正規表示式

1.測試字串的某個模式。例如,可以對乙個輸入字串進行測試,看在該字串是否存在乙個**號碼模式或乙個信用卡號碼模式。這稱為資料有效性驗證。

2.替換文字。可以在文件中使用乙個正規表示式來標識特定文字,然後可以全部將其刪除,或者替換為別的文字。

3.根據模式匹配從字串中提取乙個子字串。可以用來在文字或輸入欄位中查詢特定文字。

正則的核心思想:匹配字串的某乙個模式.

什麼是 regexp?

regexp 是正規表示式的縮寫。

當您檢索某個文字時,可以使用一種模式來描述要檢索的內容。regexp 就是這種模式。

簡單的模式可以是乙個單獨的字元。

更複雜的模式包括了更多的字元,並可用於解析、格式檢查、替換等等。

您可以規定字串中的檢索位置,以及要檢索的字元型別,等等。

regexp 物件用於儲存檢索模式。

var patt1=new regexp("e");

當您使用該 regexp 物件在乙個字串中檢索時,將尋找的是字元 "e"。

test()

test() 方法檢索字串中的指定值。返回值是 true 或 false。

例子:var patt1=new regexp("e");

document.write(patt1.test("the best things in life are free"));

由於該字串中存在字母 "e",以上**的輸出將是:true

語法 1(直接量寫法): var re = /pattern/[flags]

語法 2(建構函式寫法):var re = new regexp("pattern",["flags"])

pattern 必選項。要使用的正規表示式模式。如果使用語法 1,用 "/" 字元分隔模式。如果用語法 2,用引號將模式引起來。

flags可選項。如果使用語法 2 要用引號將 flag 引起來。

標誌可以組合使用,可用的有:

g (全文查詢出現的所有 pattern)

i (忽略大小寫)

m (多行查詢)

基本匹配規則:

[img]

匹配次數的規則:

[img]

分組規則:

[img]

匹配位置的規則:

[img]

正規表示式的屬性:

[img]

第九章 分解條件表示式

這個很簡單,但是很多人卻不做。每次看到乙個複雜的條件,就會很難理解這個條件表達的是什麼,如果將條件換成乙個函式,並且將函式起乙個很好的名字,那麼別人看了會很舒服 protected static final object do not proxy null if specificintercepto...

MySQL 自學第九章 用正規表示式進行搜尋

本章節引入正規表示式的概念 關鍵字 regexp 1 基本語法 2 進行or查詢 select prod name from products where prod name regexp 1000 2000 order by prod name 使用分割符 進行 其功能類似select or.3 ...

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...