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

解析正則表達式工作原理

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

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

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

許多因素影響正則表達式的效率,首先,正則表達式適配的文本千差萬別,部分匹配時比完全不匹配所用的時間要長。每種瀏覽器的正則表達式引擎也有不同的內部優(yōu)化。

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

第一步:編譯

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

第二步:設置起始位置

當一個正則表達式投入使用時,首先要確定目標字符串中開始搜索的位置。它是字符串的起始位置,或由正則表達式的lastIndex屬性指定,但是當它從第四步返回到這里的時候(因為嘗試匹配失敗),此位置將位于最后一次嘗試起始位置推后一個字符的位置上。

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

第三步:匹配每個正則表達式的字元

正則表達式一旦找好起始位置,它將一個一個地掃描目標文本和正則表達式模板。當一個特定字元匹配失敗時,正則表達式將試圖回溯到掃描之前的位置上,然后進入正則表達式其他可能的路徑上。

第四步:匹配成功或失敗

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

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

【編輯推薦】

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

2019-07-17 15:45:47

正則表達式字符串前端

2010-07-14 09:37:46

Perl正則表達式

2010-07-13 17:03:53

Perl正則表達式

2010-07-28 11:06:41

Flex正則表達式

2010-08-09 13:58:59

Flex正則表達式

2009-09-16 10:59:24

PHP正則表達式元字符

2009-09-16 18:08:14

正則表達式匹配單詞

2020-09-04 09:16:04

Python正則表達式虛擬機

2018-09-27 15:25:08

正則表達式前端

2024-09-14 09:18:14

Python正則表達式

2010-07-14 10:06:55

Perl正則表達式

2009-09-16 16:48:03

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

2009-09-16 12:29:27

PHP正則表達式正則表達式修飾符

2022-03-28 06:19:14

正則表達式開發(fā)

2009-02-18 09:48:20

正則表達式Java教程

2021-01-27 11:34:19

Python正則表達式字符串

2009-09-16 18:19:34

正則表達式組

2011-06-02 12:34:16

正則表達式

2017-05-12 10:47:45

Linux正則表達式程序基礎

2016-11-10 16:21:22

Java 正則表達式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久狠狠 | 久久伦理中文字幕 | www.v888av.com | 国产精品国产三级国产aⅴ无密码 | 黄色片在线看 | 最新中文字幕在线 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 久久精品一级 | 99久久久久久久久 | 国产精品夜间视频香蕉 | avhd101在线成人播放 | 国产激情91久久精品导航 | 亚洲精品大片 | 国产日韩欧美在线观看 | 午夜国产一级片 | 免费看片在线播放 | 2021狠狠干 | 久久免费视频观看 | 黑人精品欧美一区二区蜜桃 | 国产精品乱码一二三区的特点 | 99视频精品 | 欧美阿v | 久久久精品一区 | 久草网免费 | 久久亚洲一区二区三 | 久久在线看 | 日日操夜夜操天天操 | 国产一级视频在线播放 | 一本在线 | 日韩精品免费在线观看 | 国产毛片久久久久久久久春天 | 色欧美片视频在线观看 | 久久精品国产99国产精品 | 国产一区二区三区四区 | 午夜影晥 | 亚洲一区二区三区四区在线观看 | 精品久久久久国产免费第一页 | 久久夜视频| 亚洲vs天堂 | 亚洲一区二区黄 | 国产精品成人一区二区三区夜夜夜 |