1樓:邢廷洋
如果你只是想匹配標籤裡邊的內容,用這個吧,(?<=>).*(?=<)可以匹配標籤裡邊的內容。
如果你用(),這個表示分組,$1表示結果裡邊的第一個匹配內容。
*和+都是貪婪量詞,前者匹配0次或多次,後者匹配1次或者多次。
2樓:
你用*的時候,表示0個或者多個。。正則就最小取0個了。。。
括號的作用是分組,在專業正則中叫做捕獲分組,主要用於區分非捕獲分組,(?:),表示我只要括號中的匹配內容,括號外的雖然滿足條件,但是我不要。
例如:匹配的正則,如果是<\w+>,結果為如果是<(\w+)>,結果為hello
另外裡面匹配的內容是可以命名 ,使用(?p),重複,例如\1,表示這個位置等於第一個括號框著的內容。
3樓:匿名使用者
正規表示式教程裡有。在python的幫助裡有。不長,仔細的看一次。然後找一個正規表示式驗證工具。其中有一個就是python寫的。多試幾次。
正規表示式挺難掌握,掌握後又很好用,基本上各個語言通用。
它其實是就是一個順序的搜尋邏輯。你想象自己寫一個正規表示式編譯器,然後順序讀入字串去解析匹配,這樣容易學些。
以上只是學習正規表示式的經驗。與問題無關。
你的問題裡有了括號就是指定了一個組。所以列印的時候要這樣print m.group(1) 你再試試看。不要用print m.group()
4樓:閃洲廖晴曦
你理解錯了。r"2x\+5y"這裡是指對
字串中的"\"不做轉義處理;
而正規表示式中"\+"表示的是對
正規表示式
中的"+"做轉義處理,這是因為"+"在正規表示式中有特殊含義,這和字串的轉義是沒有關係的。
說的更清楚一點就是,你在程式裡寫"\\+"或者r"\+"在記憶體裡都是儲存了一個"\"和一個"+",而正規表示式引擎只要從記憶體讀取到一個連續的"\"和"+",就會理解為你想要匹配"+"這個字元。
所以說,如果你不在字串前寫r,那個正規表示式字串應該這麼寫的:
"2x\\+5y|7y-3z"
python正規表示式groups和group有什麼區別
group和groups是兩個不同的函式。一般,m.group n 返回第n組括號匹配的字元。而m.group m.group 0 所有匹配的字元,與括號無關,這個是api規定的。m.groups 返回所有括號匹配的字元,以tuple格式。m.groups m.group 0 m.group 1 對...
Python正規表示式中括號的作用
示例 1 abc bcd cde 表示這一段是abc bcd cde三者之一均可,順序也必須一致。2 abc 表示這一組要麼一起出現,要麼不出現,出現則按此組內的順序出現。3 abc 表示找到這樣abc這樣一組,但不記錄,不儲存到 變數中,否則可以通過 x取第幾個括號所匹配到的項,比如 aaa bb...
正規表示式中和有什麼區別,正規表示式裡面 和 有什麼區別?
之蘿蘿蔔 最基本的意思 小括號就是括號內看成一個整體 中括號就是匹配括號內的其中一個,大括號就是匹配幾次 但是括號裡變加上其他字元就有不同意思 詳細介紹 例如 n是一個非負整數。匹配確定的n次。例如,o 不能匹配 bob 中的 o 但是能匹配 food 中的兩個o。n是一個非負整數。至少匹配n次。例...