亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java正則表達式捕獲組索引

Java正則表達式捕獲組索引

忽然笑 2019-11-06 10:53:20
我有以下一行,typeName="ABC:xxxxx;";我需要拿這個詞ABC,我寫了以下代碼片段,Pattern pattern4=Pattern.compile("(.*):");matcher=pattern4.matcher(typeName);String nameStr="";if(matcher.find()){    nameStr=matcher.group(1);}所以,如果我說group(0)得到,ABC:但是如果我說group(1)是ABC,那么我想知道這是什么0和1意味著什么呢?如果有人可以用很好的例子向我解釋,那會更好。正則表達式模式中包含一個:,為什么group(1)結果忽略了它?組1是否檢測到括號內的所有單詞?因此,如果我\\s*(\d*)(.*)再加上兩個括號,例如:,那么會有兩個小組嗎?group(1)將退還(\d*)零件并group(2)退還(.*)零件?給出該代碼段的目的是為了消除我的困惑。這不是我要處理的代碼。上面給出的代碼可以用String.split()一種更簡單的方式來完成。
查看完整描述

3 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

對于我們其余的人

這是一個簡單而清晰的例子


正則表達式: ([a-zA-Z0-9]+)([\s]+)([a-zA-Z ]+)([\s]+)([0-9]+)


串: "!* UserName10 John Smith 01123 *!"


group(0): UserName10 John Smith 01123

group(1): UserName10

group(2):  

group(3): John Smith

group(4):  

group(5): 01123

如您所見,我創建了五個組,每個組都用括號括起來。


我包括了!*和*!使其更清晰。請注意,這些字符都不在RegEx中,因此不會在結果中產生。Group(0)僅給您整個匹配的字符串(我的所有搜索條件都放在一行中)。第1組在第一個空格之前停止,因為搜索條件中未包含空格字符。第2組和第4組只是空白,在這種情況下,它實際上是一個空格字符,但也可以是制表符或換行符等。第3組包含空格,因為我將其放在搜索條件中...等。


希望這是有道理的。


查看完整回答
反對 回復 2019-11-06
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

括號()用于啟用正則表達式詞組。


該group(1)包含是括號之間的字符串,(.*)所以.*在這種情況下,


并group(0)包含整個匹配的字符串。


如果您有更多組(讀取(...)),它將與下一個索引(2、3等)一起放入組。


查看完整回答
反對 回復 2019-11-06
  • 3 回答
  • 0 關注
  • 749 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號