我用python写正则表达式,re.findall()除了返回目标字符串外,还返回空字符,怎么回事
时间: 2024-03-08 21:49:19 浏览: 23
re.findall() 函数返回的是所有匹配的子串,如果正则表达式匹配到了空字符串,那么它也会被返回。这是正常的行为。
如果你不想返回空字符串,可以在正则表达式中使用限定符,例如使用 "+" 来表示匹配一个或多个字符,或者使用 "*" 来表示匹配零个或多个字符。这样可以确保只返回非空的匹配结果。例如,你可以这样使用 re.findall() 函数:
```
import re
string = "Hello, World!"
results = re.findall(r'\w+', string)
print(results)
```
这个例子中,`r'\w+'` 表示匹配一个或多个单词字符,因此只有非空的单词被返回。输出结果为:
```
['Hello', 'World']
```
相关问题
正则表达式re.findall
re.findall是Python中re模块提供的一个函数,用于在字符串中查找所有匹配某个正则表达式的子串,并返回一个列表。re.findall的语法为re.findall(pattern, string, flags=0),其中pattern为正则表达式,string为要匹配的字符串,flags为可选参数,用于指定匹配模式。re.findall返回的是一个列表,其中包含了所有匹配到的子串。在使用re.findall时,可以使用正则表达式中的分组语法来捕获需要的子串。同时,re.findall也支持使用re.S参数来指定匹配模式,使得正则表达式中的点号可以匹配包括换行符在内的任意字符。
re正则表达式 re.findall
re.findall是Python中re模块提供的一个函数,用于在字符串中查找所有匹配某个正则表达式的子串,并返回一个列表。
例如,我们可以使用re.findall函数来查找一个字符串中所有的数字:
```python
import re
s = 'hello 123 world 456'
nums = re.findall('\d+', s)
print(nums) # ['123', '456']
```