一、定義
正則表達式中的「+」代表匹配前一個字元出現1次或多次。
import re
pattern = r"ab+"
string = "abb ab abbb a"
result = re.findall(pattern, string)
print(result)
運行結果:[‘abb’, ‘ab’, ‘abbb’]
二、基本使用方式
使用「+」去匹配前面的字元,如果前面的字元有n個,則匹配到的結果中這個字元的數量為n個或者n個以上。
import re
pattern = r"a+b+"
string = "abb ab abbb a"
result = re.findall(pattern, string)
print(result)
運行結果:[‘abb’, ‘ab’, ‘abbb’, ‘a’]
三、與其他元字元結合使用
「+」還可以與其他元字元結合使用,如「.」、「*」等。
例如:使用「+」和「.」,則匹配任意一個字元出現1次或以上。
import re
pattern = r".+"
string = "abcde"
result = re.findall(pattern, string)
print(result)
運行結果:[‘abcde’]
四、貪婪匹配和非貪婪匹配
在匹配的時候,「+」默認是貪婪匹配,即它會儘可能多的匹配滿足條件的字元。
import re
pattern = r"ab+"
string = "abb ab abbb a"
result = re.findall(pattern, string)
print(result)
運行結果:[‘abb’, ‘ab’, ‘abbb’]
如果想要進行非貪婪匹配,需要在「+」後面加上「?」。
import re
pattern = r"ab+?"
string = "abb ab abbb a"
result = re.findall(pattern, string)
print(result)
運行結果:[‘ab’, ‘ab’, ‘ab’]
五、小結
在使用正則表達式時,「+」是一個重要的元字元,可以幫助我們快速匹配滿足條件的字元串。在使用時,需要注意區分貪婪匹配和非貪婪匹配的區別。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/156986.html