欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:正則表達式

柚子快報激活碼778899分享:正則表達式

http://yzkb.51969.com/

目錄

一.什么是正則

二.正則表達式的用途

三.發(fā)展歷史

四.正則表達式——基本格式

詳細介紹:

五.正則表達式 -?修飾符?

常見的正則表達式修飾符

六.正則表達式-元字符?

基礎元字符

轉義字符

邊界元字符

貪婪和非貪婪模式

七.正則表達式 -?運算符優(yōu)先級

八.正則表達式-匹配規(guī)則

1. 字面匹配

2. 特殊字符

3. 元字符

4. 邊界匹配

5. 貪婪與非貪婪

6. 修飾符

7. 零寬度匹配

九.示例

一.什么是正則

????????正則表達式(Regular Expression,簡稱regex或regexp)是一種用來描述字符串搜索和匹配模式的工具。它被廣泛應用于文本處理、數(shù)據(jù)解析、字符串匹配等領域,允許用戶使用簡單或復雜的規(guī)則來搜索和操作文本數(shù)據(jù)。正則表達式被許多編程語言和工具支持,例如Python、JavaScript、Perl、Java、Rust、Go等。在這些語言中,你可以使用正則表達式來完成各種字符串操作任務。

二.正則表達式的用途

正則表達式的常見用途包括:

搜索和查找:在文本中查找特定的模式。例如,在一段文本中查找所有包含日期的行。驗證和匹配:驗證文本是否符合特定的規(guī)則。例如,驗證一個字符串是否是有效的電子郵件地址。替換和修改:根據(jù)匹配的模式替換文本中的內容。例如,將某個特定模式的字符串替換成另一個字符串。

三.發(fā)展歷史

正則表達式的"祖先"可以一直上溯至對人類神經系統(tǒng)如何工作的早期研究。Warren McCulloch 和 Walter Pitts 這兩位神經生理學家研究出一種數(shù)學方式來描述這些神經網絡。

1951 年, 一位叫 Stephen Kleene 的數(shù)學家在 McCulloch 和 Pitts 早期工作的基礎上,發(fā)表了一篇標題為"神經網事件的表示法"的論文,引入了正則表達式的概念。正則表達式就是用來描述他稱為"正則集的代數(shù)"的表達式,因此采用"正則表達式"這個術語。

隨后,發(fā)現(xiàn)可以將這一工作應用于使用 Ken Thompson 的計算搜索算法的一些早期研究,Ken Thompson 是 Unix 的主要發(fā)明人。正則表達式的第一個實用應用程序就是 Unix 中的 grep 編輯器。

大致發(fā)展歷史如下:

1951年:計算理論的奠基人之一,美國計算機科學家Stephen Kleene首次提出了正則語言的概念,并使用形式化的方法來描述這種語言。這為正則表達式的發(fā)展奠定了理論基礎。 1960年代:Ken Thompson,Unix操作系統(tǒng)的共同創(chuàng)始人之一,開發(fā)了第一個實際應用正則表達式的程序,它是Unix中grep命令的一部分。這標志著正則表達式的實際應用。 1970年代:Ken Thompson和Rob Pike開發(fā)了第一個正則表達式引擎,在Unix系統(tǒng)中廣泛使用,這對正則表達式的普及起到了關鍵作用。 1986年:Philip Hazel開發(fā)了PCRE(Perl Compatible Regular Expressions)庫,它是一種正則表達式庫,允許在不同編程語言中使用Perl風格的正則表達式。 1997年:IEEE發(fā)布了POSIX.2標準,其中包括了正則表達式的標準規(guī)范,這使得正則表達式在不同Unix系統(tǒng)中的行為更加一致。 2000年代以后:正則表達式在計算機編程和文本處理中變得越來越流行,支持正則表達式的編程語言和工具變得更加豐富和強大,如Perl、Python、Java、JavaScript等。 當前:正則表達式仍然是文本處理和數(shù)據(jù)提取的重要工具,它在數(shù)據(jù)科學、文本分析、網絡爬蟲、字符串搜索和替換等領域都有廣泛的應用。

四.正則表達式——基本格式

正則表達式基本格式如下所示:

/pattern/flags

pattern 表示模式,flags 表示修飾符 模式放在斜杠 /之間,斜杠后面添加修飾符,修飾符包含ì,g,m等,修飾符放在斜杠的第二個斜杠后面。

詳細介紹:

模式(Pattern): 模式是正則表達式的主體部分,它由各種字符和元字符組成,定義了要匹配的文本式。例如,[a-zA-Z]+ 是一個模式,表示匹配一個或多個字母。

斜杠(/): 。斜杠用于包圍正則表達式的模式,將其限定在兩個斜杠之間。例如,/pattern/.

修飾符(Flags) i? ?:表示不區(qū)分大小寫匹配。 g? :表示全局匹配,即匹配所有而非僅匹配第一個。 m :表示多行匹配,即^和$可以匹配字符串中每一行的開頭和結尾

五.正則表達式 -?修飾符?

在正則表達式中,修飾符(又稱標志或標記)用于調整正則表達式的行為,提供特定的匹配控制。這些修飾符可以影響正則表達式的全局性、區(qū)分大小寫、匹配多行等屬性。修飾符的語法在不同的編程語言和工具中可能會有所不同。

常見的正則表達式修飾符

以下是一些最常見的修飾符,以及它們的作用:

g(全局匹配):啟用全局匹配,意味著正則表達式將繼續(xù)搜索整個字符串,而不是僅僅在找到第一個匹配后停止。 i(忽略大小寫):忽略字母的大小寫。這意味著正則表達式中的字母不區(qū)分大寫或小寫。 m(多行匹配):啟用多行匹配,將正則表達式的^和$視為每一行的開始和結束,而不僅僅是整個字符串的開始和結束。 s(單行匹配):啟用單行模式,使正則表達式中的.匹配包括換行符在內的任何字符。 x(擴展模式):允許在正則表達式中包含空格和注釋,以增加可讀性。 u(Unicode模式):啟用對Unicode字符的全面支持,確保正則表達式能夠正確處理Unicode字符。 U(非貪婪模式):將正則表達式中的貪婪量詞變?yōu)榉秦澙纺J?,意味著它們會盡可能匹配較少的字符。

六.正則表達式-元字符?

????????正則表達式中的元字符(metacharacters)是具有特殊含義的字符,它們用于構建和描述復雜的字符串匹配模式。元字符是正則表達式的核心部分,它們決定了正則表達式的匹配行為和操作方式。

以下是所有主要的元字符及其含義:

基礎元字符

.(點):匹配除換行符外的任何單個字符。在某些環(huán)境中(如單行模式),它也可以匹配換行符。^(插入符號):匹配字符串的開始。在多行模式下,它也匹配每一行的開頭。$(美元符號):匹配字符串的結束。在多行模式下,它也匹配每一行的結尾。*(星號):匹配前一個字符零次或多次。+(加號):匹配前一個字符一次或多次。?(問號):匹配前一個字符零次或一次。|(豎線):邏輯或,匹配左邊或右邊的表達式。()(括號):用于分組和捕獲子表達式,可以用于提取匹配的部分。[](方括號):用于指定字符集或字符范圍。例如,[a-z]匹配小寫字母,[0-9]匹配數(shù)字。[^abc]? ?:? ? 匹配不在方括號中的任何一個字符。{}(大括號):用于指定匹配次數(shù),例如,{3}表示恰好三次,{1,3}表示一到三次。

轉義字符

\(反斜杠):用于轉義元字符,以便將其視為普通字符。例如:\.用于匹配點,\*用于匹配星號。

邊界元字符

\b(單詞邊界):匹配單詞的邊界。\B(非單詞邊界):匹配非單詞邊界。\d:匹配任何數(shù)字,相當于[0-9]。\D:匹配任何非數(shù)字字符。\w:匹配字母、數(shù)字、下劃線,相當于[a-zA-Z0-9_]。\W:匹配任何非字母、數(shù)字、下劃線的字符。\s:匹配空白字符,包括空格、制表符、換行符等。\S:匹配非空白字符。

貪婪和非貪婪模式

正則表達式的量詞默認是貪婪的,它們嘗試匹配盡可能多的字符。使用?可以將量詞轉為非貪婪:

*?:匹配前一個字符零次或多次,但非貪婪。+?:匹配前一個字符一次或多次,但非貪婪。??:匹配前一個字符零次或一次,但非貪婪。{n,m}?:非貪婪地匹配前一個字符至少n次,最多m次。

七.正則表達式 -?運算符優(yōu)先級

正則表達式從左到右進行計算,并遵循優(yōu)先級順序,這與算術表達式非常類似。

相同優(yōu)先級的從左到右進行運算,不同優(yōu)先級的運算先高后低。下表從最高到最低說明了各種正則表達式運算符的優(yōu)先級順序:

運算符描述\轉義符(), (?:), (?=), []圓括號和方括號*, +, ?, {n}, {n,}, {n,m}限定符^, $, \任何元字符、任何字符定位點和序列(即:位置和順序)|替換,"或"操作 字符具有高于替換運算符的優(yōu)先級,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",請使用括號創(chuàng)建子表達式,從而產生"(m|f)ood"。

以下是一些常見正則表達式運算符按照優(yōu)先級從高到低的順序:

轉義符號:?\?是用于轉義其他特殊字符的轉義符號。它具有最高的優(yōu)先級。 示例:\d、\.?等,其中?\d?匹配數(shù)字,\.?匹配點號。 括號:?圓括號?()?用于創(chuàng)建子表達式,具有高于其他運算符的優(yōu)先級。 示例:(abc)+?匹配 "abc" 一次或多次。 量詞:?量詞指定前面的元素可以重復的次數(shù)。 示例:a*?匹配零個或多個 "a"。 字符類:?字符類使用方括號?[]?表示,用于匹配括號內的任意字符。 示例:[aeiou]?匹配任何一個元音字母。 斷言:?斷言是用于檢查字符串中特定位置的條件的元素。 示例:^?表示行的開頭,$?表示行的結尾。 連接:?連接在沒有其他運算符的情況下表示字符之間的簡單連接。 示例:abc?匹配 "abc"。 管道:?管道符號?|?表示"或"關系,用于在多個模式之間選擇一個。 示例:cat|dog?匹配 "cat" 或 "dog"。

八.正則表達式-匹配規(guī)則

正則表達式的匹配規(guī)則指的是正則表達式如何解釋和應用于文本,以確定字符串是否符合給定的模式。理解這些匹配規(guī)則對于編寫有效的正則表達式至關重要。

1. 字面匹配

正則表達式可以包含字面字符,即直接匹配它們自身的字符。例如,abc 只匹配完全相同的字符串。

2. 特殊字符

正則表達式中的特殊字符具有特定的含義,用于描述復雜的匹配模式。為了匹配特殊字符本身,需要使用轉義字符 \ 進行轉義。

3. 元字符

正則表達式中具有特殊含義的字符包括:.、*、+、?、^、$、[]、{}、()、| 等。以下是一些常見的元字符及其匹配規(guī)則:

.:匹配任何單個字符,除了換行符。在單行模式下(啟用修飾符 s),也可以匹配換行符。^ 和 $:分別匹配字符串的開頭和結尾。在多行模式下(啟用修飾符 m),它們也匹配每一行的開頭和結尾。*、+、?:分別表示匹配前一個字符零次或多次、一次或多次、零次或一次。[]:用于定義字符集或字符范圍。[a-z] 匹配從 a 到 z 的任意小寫字母。|:邏輯或,匹配其中一個表達式。():用于分組,并可用于捕獲匹配的子表達式。

4. 邊界匹配

正則表達式可以匹配特定位置或邊界:

\b:匹配單詞的邊界。\B:匹配非單詞邊界。^ 和 $:用于匹配字符串的開頭和結尾。

5. 貪婪與非貪婪

正則表達式中的量詞默認是貪婪的,這意味著它們會盡可能匹配更多字符。非貪婪匹配會盡可能匹配更少字符,通常通過在量詞后面加上 ? 來實現(xiàn)。

*?:非貪婪匹配前一個字符零次或多次。+?:非貪婪匹配前一個字符一次或多次。??:非貪婪匹配前一個字符零次或一次。

6. 修飾符

修飾符可以改變正則表達式的匹配規(guī)則:

g(全局匹配):在整個字符串中進行匹配。i(忽略大小寫):不區(qū)分大小寫。m(多行模式):讓 ^ 和 $ 匹配每一行的開頭和結尾。s(單行模式):使 . 匹配包括換行符在內的任何字符。

7. 零寬度匹配

一些正則表達式匹配是零寬度的,即不消耗字符,但指示特定位置或條件。

^、$:匹配字符串的開頭和結尾。\b:匹配單詞邊界。\B:匹配非單詞邊界。

九.示例

基本匹配

匹配特定單詞

正則表達式:hello

匹配內容:字符串中包含 hello 的部分。

匹配特定模式

正則表達式:abc

匹配內容:字符串中包含 abc 的部分。

重復和量詞

匹配任意數(shù)量的字符

正則表達式:a.*b

匹配內容:a 和 b 之間可以包含任意數(shù)量的字符。

匹配至少一次

正則表達式:a+b

匹配內容:至少一個 a 后面是 b。

匹配零次或多次

正則表達式:ab*

匹配內容:a 后面可以有零次或多次 b。

匹配可選字符

正則表達式:colou?r

匹配內容:color 或 colour。

字符集和范圍

匹配一組字符中的任意一個

正則表達式:[aeiou]

匹配內容:任意元音字母。

匹配字符范圍

正則表達式:[a-z]

匹配內容:小寫字母。

匹配非字符集

正則表達式:[^aeiou]

匹配內容:非元音的字符。

邊界匹配

匹配行的開始和結束

正則表達式:^start

匹配內容:以 start 開頭的字符串。

正則表達式:end$

匹配內容:以 end 結尾的字符串。

單詞邊界

正則表達式:\bword\b

匹配內容:整個單詞 word。

分組和引用

使用分組

正則表達式:(abc)+

匹配內容:一個或多個 abc。

使用引用

正則表達式:(\d{3})-\1

匹配內容:形式如 123-123 的字符串。

邏輯或

匹配其中之一

正則表達式:dog|cat

匹配內容:dog 或 cat。

貪婪和非貪婪匹配

貪婪匹配

正則表達式:<.*>

匹配內容:包含在 < 和 > 之間的最長字符串。

非貪婪匹配

正則表達式:<.*?>

匹配內容:包含在 < 和 > 之間的最短字符串。

柚子快報激活碼778899分享:正則表達式

http://yzkb.51969.com/

文章鏈接

評論可見,查看隱藏內容

本文內容根據(jù)網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18916941.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄