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

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:正則表達(dá)式

柚子快報(bào)激活碼778899分享:正則表達(dá)式

http://yzkb.51969.com/

目錄

一.什么是正則

二.正則表達(dá)式的用途

三.發(fā)展歷史

四.正則表達(dá)式——基本格式

詳細(xì)介紹:

五.正則表達(dá)式 -?修飾符?

常見的正則表達(dá)式修飾符

六.正則表達(dá)式-元字符?

基礎(chǔ)元字符

轉(zhuǎn)義字符

邊界元字符

貪婪和非貪婪模式

七.正則表達(dá)式 -?運(yùn)算符優(yōu)先級(jí)

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

1. 字面匹配

2. 特殊字符

3. 元字符

4. 邊界匹配

5. 貪婪與非貪婪

6. 修飾符

7. 零寬度匹配

九.示例

一.什么是正則

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

二.正則表達(dá)式的用途

正則表達(dá)式的常見用途包括:

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

三.發(fā)展歷史

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

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

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

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

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

四.正則表達(dá)式——基本格式

正則表達(dá)式基本格式如下所示:

/pattern/flags

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

詳細(xì)介紹:

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

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

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

五.正則表達(dá)式 -?修飾符?

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

常見的正則表達(dá)式修飾符

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

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

六.正則表達(dá)式-元字符?

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

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

基礎(chǔ)元字符

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

轉(zhuǎn)義字符

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

邊界元字符

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

貪婪和非貪婪模式

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

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

七.正則表達(dá)式 -?運(yùn)算符優(yōu)先級(jí)

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

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

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

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

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

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

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

1. 字面匹配

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

2. 特殊字符

正則表達(dá)式中的特殊字符具有特定的含義,用于描述復(fù)雜的匹配模式。為了匹配特殊字符本身,需要使用轉(zhuǎn)義字符 \ 進(jìn)行轉(zhuǎn)義。

3. 元字符

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

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

4. 邊界匹配

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

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

5. 貪婪與非貪婪

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

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

6. 修飾符

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

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

7. 零寬度匹配

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

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

九.示例

基本匹配

匹配特定單詞

正則表達(dá)式:hello

匹配內(nèi)容:字符串中包含 hello 的部分。

匹配特定模式

正則表達(dá)式:abc

匹配內(nèi)容:字符串中包含 abc 的部分。

重復(fù)和量詞

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

正則表達(dá)式:a.*b

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

匹配至少一次

正則表達(dá)式:a+b

匹配內(nèi)容:至少一個(gè) a 后面是 b。

匹配零次或多次

正則表達(dá)式:ab*

匹配內(nèi)容:a 后面可以有零次或多次 b。

匹配可選字符

正則表達(dá)式:colou?r

匹配內(nèi)容:color 或 colour。

字符集和范圍

匹配一組字符中的任意一個(gè)

正則表達(dá)式:[aeiou]

匹配內(nèi)容:任意元音字母。

匹配字符范圍

正則表達(dá)式:[a-z]

匹配內(nèi)容:小寫字母。

匹配非字符集

正則表達(dá)式:[^aeiou]

匹配內(nèi)容:非元音的字符。

邊界匹配

匹配行的開始和結(jié)束

正則表達(dá)式:^start

匹配內(nèi)容:以 start 開頭的字符串。

正則表達(dá)式:end$

匹配內(nèi)容:以 end 結(jié)尾的字符串。

單詞邊界

正則表達(dá)式:\bword\b

匹配內(nèi)容:整個(gè)單詞 word。

分組和引用

使用分組

正則表達(dá)式:(abc)+

匹配內(nèi)容:一個(gè)或多個(gè) abc。

使用引用

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

匹配內(nèi)容:形式如 123-123 的字符串。

邏輯或

匹配其中之一

正則表達(dá)式:dog|cat

匹配內(nèi)容:dog 或 cat。

貪婪和非貪婪匹配

貪婪匹配

正則表達(dá)式:<.*>

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

非貪婪匹配

正則表達(dá)式:<.*?>

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

柚子快報(bào)激活碼778899分享:正則表達(dá)式

http://yzkb.51969.com/

文章鏈接

評(píng)論可見,查看隱藏內(nèi)容

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

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

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

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄