2. 找出所有整数和小数:给一段文字,可能有中文,把里面的所有非负整数和小数找出来,不需要去掉前导0或小数点后面多余的0, 然后依次输出。 解题思路:导入re模块,找出所有整数和小数,可能有中文的正则表达式[\d|\.]赋值给p,定义一个string_变量用于存放用户输入的字符串用p.findall的方法匹配和搜索字符串,以列表的形式赋值给x,最后循环遍历出列表x。python
时间: 2024-02-22 20:59:29 浏览: 152
好的,这是一个基于正则表达式的字符串匹配问题,我们可以使用Python中的re模块来实现。
首先,我们需要定义一个正则表达式来匹配所有的非负整数和小数。在这个正则表达式中,我们使用\d来匹配数字,使用\.来匹配小数点,然后将它们用|连接起来,表示匹配数字或小数点。最后,我们将这个正则表达式赋值给一个名为p的变量。
接下来,我们定义一个string_变量来存储用户输入的字符串。然后,我们使用p.findall(string_)方法来匹配和搜索字符串,将匹配到的结果以列表的形式赋值给一个名为x的变量。
最后,我们使用for循环遍历列表x,并输出每一个匹配到的非负整数和小数。
下面是实验代码及运行结果:
```python
import re
# 定义正则表达式
p = re.compile(r'[\d\.]+')
# 输入字符串
string_ = '这是一段包含整数和小数的字符串,123 456.789 0.001 3. 0. 1.23 1.230 1.2300 一二三四五六七八九十'
# 查找匹配结果
x = p.findall(string_)
# 输出匹配结果
for i in x:
print(i)
```
运行结果:
```
123
456.789
0.001
3.
0.
1.23
1.230
1.2300
```
因此,我们成功地找出了字符串中的所有非负整数和小数。
阅读全文