正規表示式find和group詳解

2021-09-01 13:14:26 字數 733 閱讀 7656

正規表示式是乙個很好的東西,要使用好得好好研究。最近對find和group方法比較模糊。經研究記錄下筆記。

呼叫group()方法前,都前要用find方法。否則報錯。其實看matcher類可以看到其中有乙個int groups;

其實這個陣列就是儲存group匹配的資料。首先要知道乙個正規表示式之後有幾組。可通過groupcount()方法得到,其實很簡單,是有幾對大括號就有幾組。例如:

@test

public void testlookahead() )(aa)");

matcher m = p.matcher("12332aa438aaf");

assert.assertequals(2, m.groupcount());

}

有兩對大括號那就是兩組了。開始看到有帖子說這有三組,把group(0)當成一組,其實group(0)和group()是相等的。然後檢視group源**發現

public string group(int group)
就知道group方法前,一定要find一下了,否則matcer類中first的初始值是-1.然後呼叫find方法返回false的時候,first還是false,所有所有的group方法都是要在find方法返回true的情況下,也就是字串要匹配正規表示式的。

然後group(1),group(2).......group(n)都是在group()返回的字串下匹配的結果。

python正規表示式中group

用於匹配括號內的任何正規表示式,並且指明組的開始和結束位置 可以在執行匹配之後檢索組中的內容,並且可以在可以在字串中使用 number來進行進一步的匹配,如下所述。當需要匹配字元 或者 時,可以使用 和 或者 和 來實現。以上便是python3.6官方文件對於 表示式的解說,該括號表示式用於定義乙個...

正規表示式 (捕獲組與group)

先來看個例子 把逗號之間的數字和逗號括號分隔的數字取出來 string s this data singlev300 bindec substr this databin,5960,81 pattern ss1 pattern.compile 0 9 matcher m1 ss1.matcher s...

正規表示式中group和groups的區別

第一點,搞清楚它們用在什麼地方?正規表示式中,group 用來提取分組截獲的字串,用來分組。組是通過 和 元字元來標識的。和 有很多在數學表示式中相同的意思 它們一起把在它們裡面的表示式組成一組。舉個例子,你可以用重複限制符,象 和 來重複組裡的內容,比如說 ab 將匹配零或更多個重複的 ab 如果...