您的位置:

Python中正则表达式中"+"的用法

一、定义

正则表达式中的“+”代表匹配前一个字符出现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']

五、小结

在使用正则表达式时,“+”是一个重要的元字符,可以帮助我们快速匹配满足条件的字符串。在使用时,需要注意区分贪婪匹配和非贪婪匹配的区别。