re模块中,匹配规则表示匹配0个或多个的是
时间: 2024-02-29 08:52:58 浏览: 85
python re模块匹配贪婪和非贪婪模式详解
在`re`模块中,正则表达式可以使用`*`符号来表示匹配0个或多个前面的字符或子表达式。具体来说,`*`符号表示匹配它前面的字符或子表达式0次或多次。例如,正则表达式`ab*c`表示匹配一个字母`a`,后面跟随0个或多个`b`字母,最后是一个`c`字母的字符串。
下面是一个使用`*`符号的示例,用来匹配任意数量的数字:
```python
import re
text = '123 456 7890 1234567890'
pattern = r'\d*'
matches = re.findall(pattern, text)
print(matches)
```
这个程序使用`re.findall()`函数在给定的文本中查找匹配指定正则表达式的所有子字符串,并将它们作为一个列表返回。在这个例子中,正则表达式`\d*`表示匹配任意数量的数字。因此,程序的输出结果是一个包含所有数字子字符串的列表:
```
['123', '', '456', '', '7890', '', '1234567890', '']
```
需要注意的是,`*`符号是一个贪婪的量词,它会尽可能多地匹配前面的字符或子表达式。如果需要匹配尽可能少的字符或子表达式,可以使用非贪婪的量词`*?`。例如,正则表达式`ab*?c`表示匹配一个字母`a`,后面跟随0个或多个`b`字母(尽可能少地匹配),最后是一个`c`字母的字符串。
阅读全文