偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談Java中正則表達式的優(yōu)化方法

開發(fā) 后端
本文主要講述Java中的正則表達式優(yōu)化方法。

獲取每次使用引起小損失的分組。如果你實際并不需要獲取一個分組內的文本,那么就使用非捕獲分組。例如使用“(?:X)”代替“(X)”。

讓引擎完成優(yōu)化(Let the engine do the work for you)

如上面我所提到的,java.util.regex包可以編JAVA譯正則表達式時對其優(yōu)化。例如,正則表達式中包含了一個必須在輸入字符串中出現的字符串(或者整個表達式都不匹配),引擎有時會首先搜索該字符串,如果沒有找到匹配就會報告失敗,不再檢查整個正則表達式。

另外非常有用地自動優(yōu)化正則表達式的方式讓引擎根據正則表達式中的期望長度檢查輸入字符串的長度。例如,表達式“\d{100}”是內在優(yōu)化的,以致于如果輸入字符串不是JAVA100個字符,引擎就會報告失敗,而不再考察整個正則表達式。

無論何時編寫復雜的正則表達式時,嘗試找出一種編寫方式使引擎可以識別和優(yōu)化這些特殊情況。例如,不要在分組或選擇中隱藏命令字符串,因為引擎不會識別它們。若有可能,指定你想要匹JAVA配的輸入字符串的長度也是相當有用的,如上例所示。

優(yōu)化貪婪模式和勉強模式(Optimizing greedy and reluctant quantifiers)

你已經有了如何優(yōu)化正則表達式的基本概念,其中一些方式可以JAVA讓引擎來完成優(yōu)化?,F在我們討論優(yōu)化貪婪模式和勉強模式。貪婪模式量詞如“*”或“+”,會首先從輸入字符串中嘗試匹配盡可能多的字符,即使這意味著字符串中的剩下的內容已經不足以匹配正則表達式的其余部分。如果是這樣,貪婪模式量詞就會回縮,返回字符,知道可以完全匹配或者沒有字符了。勉強(或者lazy)模式,另一方面,會首先嘗試匹配輸入字符串中盡可能少的字符。

【編輯推薦】

  1. Java EE開發(fā)三劍客現狀及發(fā)展淺析
  2. Java多線程程序設計初步
  3. Java中跳出多層循環(huán)的簡單方法
責任編輯:楊鵬飛 來源: jisuanji009的空間
相關推薦

2019-07-17 15:45:47

正則表達式字符串前端

2010-03-25 18:25:36

Python正則表達式

2021-05-25 09:18:04

正則表達式Linux字符串

2011-08-16 16:40:06

iPhone應用正則表達式OgreKit

2016-11-10 16:21:22

Java 正則表達式

2019-12-17 17:01:02

MySQLSQL數據庫

2018-09-27 15:25:08

正則表達式前端

2010-08-09 09:29:26

Flex程序設計

2009-02-18 09:48:20

正則表達式Java教程

2009-09-16 10:48:31

PHP正則表達式

2019-09-24 09:29:26

Python數據接口

2020-09-04 09:16:04

Python正則表達式虛擬機

2023-10-07 08:25:09

Java處理工具正則表達式

2009-06-08 16:49:05

Java正則表達式group

2019-05-21 10:42:41

Python正則表達式

2009-09-16 17:15:57

正則表達式引擎

2022-01-04 11:35:03

Linux Shel正則表達式Linux

2023-09-13 08:12:45

2024-09-14 09:18:14

Python正則表達式

2009-06-09 09:16:52

Java正則表達式
點贊
收藏

51CTO技術棧公眾號