成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析正則表達(dá)式工作原理

開(kāi)發(fā) 后端
今天,本文為大家介紹的是正則表達(dá)式的用法和注意事項(xiàng),希望對(duì)你有幫助,一起來(lái)看吧!

正則表達(dá)式,是指一個(gè)用來(lái)描述或者匹配一系列符合某個(gè)句法規(guī)則的字符串的單個(gè)字符串。在很多文本編輯器或其他工具里,正則表達(dá)式通常被用來(lái)檢索和/或替換那些符合某個(gè)模式的文本內(nèi)容。

粗淺地編寫(xiě)正則表達(dá)式是造成性能瓶頸的主要原因,但還有很多可以改進(jìn)正則表達(dá)式效率的地方。兩個(gè)正則表達(dá)式匹配相同的文本并不意味著他們具有同等的速度。

許多因素影響正則表達(dá)式的效率,首先,正則表達(dá)式適配的文本千差萬(wàn)別,部分匹配時(shí)比完全不匹配所用的時(shí)間要長(zhǎng)。每種瀏覽器的正則表達(dá)式引擎也有不同的內(nèi)部?jī)?yōu)化。

為了有效地使用正則表達(dá)式,重要的是理解它們的工作原理。下面是一個(gè)正則表達(dá)式處理的基本步驟:

第一步:編譯

當(dāng)你創(chuàng)建了一個(gè)正則表達(dá)式對(duì)象之后(使用一個(gè)正則表達(dá)式直接量或者RegExp構(gòu)造器),瀏覽器檢查你的模板有沒(méi)有錯(cuò)誤,然后將它轉(zhuǎn)換成一個(gè)本機(jī)代碼例程,用于執(zhí)行匹配工作。如果你將正則表達(dá)式賦給一個(gè)變量,你可以避免重復(fù)執(zhí)行此步驟。

第二步:設(shè)置起始位置

當(dāng)一個(gè)正則表達(dá)式投入使用時(shí),首先要確定目標(biāo)字符串中開(kāi)始搜索的位置。它是字符串的起始位置,或由正則表達(dá)式的lastIndex屬性指定,但是當(dāng)它從第四步返回到這里的時(shí)候(因?yàn)閲L試匹配失敗),此位置將位于最后一次嘗試起始位置推后一個(gè)字符的位置上。

瀏覽器優(yōu)化正則表達(dá)式引擎的辦法是,在這一階段中通過(guò)早期預(yù)測(cè)跳過(guò)一些不必要的工作。例如,如果一個(gè)正則表達(dá)式以^開(kāi)頭,IE 和Chrome通常判斷在字符串起始位置上是否能夠匹配,然后可避免愚蠢地搜索后續(xù)位置。另一個(gè)例子是匹配第三個(gè)字母是x的字符串,一個(gè)聰明的辦法是先找到x,然后再將起始位置回溯兩個(gè)字符。

第三步:匹配每個(gè)正則表達(dá)式的字元

正則表達(dá)式一旦找好起始位置,它將一個(gè)一個(gè)地掃描目標(biāo)文本和正則表達(dá)式模板。當(dāng)一個(gè)特定字元匹配失敗時(shí),正則表達(dá)式將試圖回溯到掃描之前的位置上,然后進(jìn)入正則表達(dá)式其他可能的路徑上。

第四步:匹配成功或失敗

如果在字符串的當(dāng)前位置上發(fā)現(xiàn)一個(gè)完全匹配,那么正則表達(dá)式宣布成功。如果正則表達(dá)式的所有可能路徑都嘗試過(guò)了,但是沒(méi)有成功地匹配,那么正則表達(dá)式引擎回到第二步,從字符串的下一個(gè)字符重新嘗試。只有字符串中的每個(gè)字符(以及最后一個(gè)字符后面的位置)都經(jīng)歷了這樣的過(guò)程之后,還沒(méi)有成功匹配,那么正則表達(dá)式就宣布徹底失敗。
牢記這一過(guò)程將有助于您明智地判別那些影響正則表達(dá)式性能問(wèn)題的類(lèi)型。

原文地址: http://www.yiiyaa.net/1231

【編輯推薦】

  1. PHP正則表達(dá)式 PHP中的正則函數(shù)
  2. C#中簡(jiǎn)單的正則表達(dá)式
  3. 10個(gè)在線(xiàn)正則表達(dá)式測(cè)試網(wǎng)站推薦
  4. 探究Flex正則表達(dá)式規(guī)則
  5. 編譯Python正則表達(dá)式的具體操作方法介紹
責(zé)任編輯:于鐵 來(lái)源: yiiyaa.net
相關(guān)推薦

2019-07-17 15:45:47

正則表達(dá)式字符串前端

2010-07-13 17:03:53

Perl正則表達(dá)式

2010-08-09 13:58:59

Flex正則表達(dá)式

2010-07-28 11:06:41

Flex正則表達(dá)式

2010-07-14 09:37:46

Perl正則表達(dá)式

2009-09-16 18:08:14

正則表達(dá)式匹配單詞

2009-09-16 10:59:24

PHP正則表達(dá)式元字符

2018-09-27 15:25:08

正則表達(dá)式前端

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)

2024-09-14 09:18:14

Python正則表達(dá)式

2009-09-16 12:29:27

PHP正則表達(dá)式正則表達(dá)式修飾符

2010-07-14 10:06:55

Perl正則表達(dá)式

2009-09-16 16:48:03

正則表達(dá)式匹配數(shù)字

2016-11-10 16:21:22

Java 正則表達(dá)式

2009-09-16 17:15:57

正則表達(dá)式引擎

2022-01-04 11:35:03

Linux Shel正則表達(dá)式Linux

2023-09-13 08:12:45

2010-03-25 18:25:36

Python正則表達(dá)式

2017-05-12 10:47:45

Linux正則表達(dá)式程序基礎(chǔ)

2022-03-28 06:19:14

正則表達(dá)式開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产一区二区三区日韩 | 草久视频 | 天天宗合网 | 亚洲一区二区三区视频免费观看 | 性色在线| 午夜成人免费视频 | 免费网站国产 | 国产精久久久久久久妇剪断 | 毛片大全 | 最新国产精品视频 | 亚洲精品电影网在线观看 | 亚洲精品成人免费 | 亚洲视频三区 | 久久精品| 青青草在线播放 | 欧美二区在线 | 国产欧美日韩在线观看 | 九九伊人sl水蜜桃色推荐 | 黄频视频 | 在线观看中文字幕av | 中文字幕一区二区三区不卡 | 蜜桃av一区二区三区 | 色噜噜亚洲男人的天堂 | 久久久久香蕉视频 | 美女黄色在线观看 | 国产精品成人一区 | 一级毛片大全免费播放 | 成人午夜免费福利视频 | 中文字幕一区二区三区不卡 | 久久久久久久夜 | 国产精品一区二区福利视频 | 亚洲精品成人网 | 亚洲成人自拍 | 欧美黄色一区 | 久久久久久久久久爱 | 盗摄精品av一区二区三区 | 91免费在线看 | 国产美女在线观看 | www.黄色在线观看 | 91久操视频 | 亚洲3p|