91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java正則表達式的正向預查和反向預查

發布時間:2020-05-23 14:25:59 來源:億速云 閱讀:572 作者:鴿子 欄目:編程語言

官方文檔如圖:

java正則表達式的正向預查和反向預查

上圖是官方文檔的介紹,總結一下講了兩個知識點:

1、是否獲取匹配并保存匹配的值;

2、正向預查和反向預查。

一、解釋是否獲取匹配并保存匹配的值

1、()表示捕獲分組,獲取匹配,()把每個分組里的匹配的值保存起來;

2、(?:)表示非捕獲分組,獲取匹配,非捕獲分組匹配的值不會保存起來,可以提高程序執行速度;

3、(?=?!?<=?<!)表示非捕獲分組,不獲取匹配,也不保存匹配的值。

舉例說明:

// 是否獲取匹配測試文本 abxoxcd

  ..(xox)..       匹配 abxoxcd

  ..(?:xox)..     匹配 abxoxcd

  ..(?=xox)..     匹配 abxo

獲取匹配,一般匹配到了字符之后,該字符就被消耗、輸出。不獲取匹配,不會消耗字符。

// 是否保存匹配的值測試文本 AAABBCaaA E666FF

  (A)\\1*       匹配 AAA、A

  (\\w)\\1+     匹配 AAA、BB、aa、666、FF

  (?:A)(B)\\1*  匹配 ABB

因為非捕獲分組不保存匹配的值,所以  (?:A)(B)\\1* 匹配 ABB  第一個\\1表示(B)這個捕獲組捕獲到的值。

“注意:反向引用表示捕獲到的值,而不是再次使用正則表達式”

二、解釋正向預查和反向預查

// 前瞻:
exp1(?=exp2)   查找exp2前面的exp1
// 后顧:
(?<=exp2)exp1  查找exp2后面的exp1
// 負前瞻:
exp1(?!exp2)   查找后面不是exp2的exp1
// 負后顧:
(?<!exp2)exp1  查找前面不是exp2的exp1

舉例說明:

// 正向預查和反向預查
測試文本 abxoxcd

  ..(?=xox)  匹配 ab

  ..(?=oxo)  匹配不到

  (?=xox)..  匹配xo

  (?<=xox).. 匹配 cd

預查只需要記住:

1、環顧全局定位到非捕獲組;

2、不獲取匹配(不消耗字符),不保存匹配的值(不能使用反向引用)。

以上就是關于java正則?:、?=、?!的一些理解的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹿泉市| 阿尔山市| 信阳市| 阿坝县| 无为县| 涟水县| 沂水县| 涿鹿县| 开远市| 敦化市| 原阳县| 衡水市| 吴堡县| 繁峙县| 永丰县| 瓮安县| 福海县| 大安市| 深圳市| 曲松县| 肃北| 元氏县| 都昌县| 汝阳县| 宣武区| 禹州市| 平和县| 高碑店市| 大兴区| 连云港市| 平陆县| 邯郸市| 保山市| 永福县| 白山市| 大竹县| 桓台县| 普安县| 嘉定区| 广州市| 黔西县|