導航:首頁 > 編程語言 > java正則反向引用

java正則反向引用

發布時間:2023-06-14 05:31:12

⑴ 正則表達式的後向引用可以解釋一下嗎

比如正則 ab(?=cd)
它只會匹配後面是cd的ab,如果後面不是cd,那些ab就不會匹配。
還有否定的情況,即匹配後面不是什麼的 內容
如 ab(?!cd) 和上面正好相反,它只會匹配後面不是cd的ab,如果後面是cd,這些ab就不匹配。
有些書上也把這種情況叫做 「環視結構」、「順序環視」、「零寬斷言」、「正向斷言」等。
還有判斷前面字元的情況,這叫「逆序環視」、「負向斷言」等
期望這是你要的解釋。還有一種和「引用」有關的是下面的情況
ab(cd)\1
這里的\1就涉及到引用【後面引用前面的】。\1代表前面的第一個括弧中的內容。
這里匹配的就是abcdcd
這里的括弧叫做「捕獲」,可以有多個括弧
\1也叫「反向引用」,如果有兩個括弧,\2可以引用第二個括弧中的內容。
後面的可能是你問的情況。
括弧和\1之間不一定挨著,中間有其他字元也是可以的。

java 正則表達式是什麼

不同情況下的正則表達式:

⑶ java正則表達式,反向匹配

你說的這些詞都是中文後面跟一個/n吧,用下面的正則就好了

([\u4e00-\u9fff]+)/n
這個問題是版java分類的,java就是權這樣寫
import java.util.regex.*;
Pattern p = Pattern.compile("([\\u4e00-\\u9fff]+)/n");

⑷ java正則表達式,捕獲組重命名怎麼搞

1. 捕獲組及其編號:
1) 捕獲組之前講過,就是匹配到的內容,按照()子表達式劃分成若干組;
2) 例如正則表達式:(ab)(cd(ef))就有三個捕獲組,沒出現一對()就是一個捕獲組
3) 捕獲組編號規則:
i. 引擎會對捕獲組進行編號,編號規則是左括弧(從左到右出現的順序,從1開始編號;
ii. 例如:

2. 反向引用:
1) 捕獲組的作用就是為了可以在正則表達式內部或者外部(Java方法)引用它;
2) 如何引用?當然是通過前面講的用捕獲組的編號來引用咯!
3) 正則表達式內部引用:
i. \X:X是一個十進制數,X的范圍必須落在捕獲組編號范圍之內,該表達式就匹配X號捕獲組所匹配到的內容;
ii. 從上面的描述可以看出,\X匹配的內容是必須X號捕獲組匹配成功之後才能確定的!
iii. 例如:([ab])\1,匹配aabbcc的結果是aa和bb,\1的內容必須要讓1號捕獲組捕獲後才能確定,如果1號捕獲的是a那麼\1就是a,1號捕獲到了b那麼\1就是b;
4) 正則表達式外部引用:就是用Matcher對象的start、end、group查詢匹配信息時,使用捕獲組編號對捕獲組引用(int group);

3. 捕獲組命名:
1) 如果捕獲組的數量非常多,那都用數字進行編號並引用將會非常混亂,並且難以記憶每個捕獲組的內容及意義,因此對捕獲組命名顯得尤為重要;
2) Java 7開始提供了對捕獲組命名的語法,並且可以通過捕獲組的名稱對捕獲組反向引用(內外都行);
i. 命名捕獲組的語法格式:(?<自定義名>expr)
ii. 例如:(?<year>\d{4})-(?<date>\d{2}-(?<day>\d{2}))
a. 有三個命名捕獲組year、date和day
b. 從左到右編號分別為1、2、3(編號同樣是有效的)
3) 命名捕獲組的反向引用:
i. 正則表達式內引用:\k<捕獲組名稱>
!例如:(?<year>\d{4})-\k<year>可以匹配1999-1999
ii. 外部引用:Matcher對象的start、end、group的String name參數指定要查詢的捕獲組的名稱;

閱讀全文

與java正則反向引用相關的資料

熱點內容
dede工具 瀏覽:507
5g網盟app怎麼下載 瀏覽:486
微信備份老是連接中斷 瀏覽:886
出台多少份文件 瀏覽:380
鞋子怎麼搭配衣服的app 瀏覽:755
文件名使用的通配符的符號是什麼 瀏覽:916
lol分卷文件損壞怎麼辦 瀏覽:276
6分管車螺紋怎麼編程 瀏覽:732
海口農商銀行信用卡app是什麼 瀏覽:770
win10任務欄文件夾我的電腦 瀏覽:14
安卓nba2k18 瀏覽:776
文件夾密碼怎麼修改密碼 瀏覽:271
蘋果數據中心用什麼伺服器 瀏覽:769
省內圓通快遞寄文件夾需要多少錢 瀏覽:740
iphone程序加密 瀏覽:884
win10文件夾調整文件行高 瀏覽:681
創意手繪教程 瀏覽:754
微信刪除帳號信息 瀏覽:596
mysql操作類文件 瀏覽:649
繞過xp密碼 瀏覽:158

友情鏈接