python编程使用正则表达式判断输入的字符串是否是一个人的年龄,要求年龄由纯数字组成,数字位数为1-3位,年龄值不大于200;
时间: 2023-11-13 10:03:49 浏览: 108
可以使用正则表达式模块re来判断年龄是否符合要求。具体代码如下所示:
```python
import re
def is_valid_age(age_str):
# 定义正则表达式
pattern = r'^\d{1,3}$'
# 判断年龄是否符合要求
if re.match(pattern, age_str):
age = int(age_str)
if age <= 200:
return True
return False
```
使用示例:
```python
age_str = input("请输入年龄:")
if is_valid_age(age_str):
print("年龄合法")
else:
print("年龄不合法")
```
相关问题
使用正则表达式提取下列字符串中的电话号码。 telNumber = '''Suppose my Phone No. is 0535-1234567,\ yours is 010-12345678,\ his is 025-87654321.’‘’
要从给定的字符串 `telNumber` 中提取电话号码,我们可以使用Python的re模块(正则表达式库)。这里是一个简单的正则表达式模式,它可以匹配中国大陆的电话号码格式(区号+固定位数):
```python
import re
telNumber = '''Suppose my Phone No. is 0535-1234567, yours is 010-12345678, his is 025-87654321.'''
pattern = r'\b(0[1-9]\d{2}-\d{7,8})\b' # 匹配形式为0开头的区号后跟四位到八位数字的电话号码
# 使用正则表达式查找所有匹配项
phone_numbers = re.findall(pattern, telNumber)
print(phone_numbers)
```
这段代码首先定义了一个正则表达式模式,`\b(0[1-9]\d{2}-\d{7,8})\b` 的含义是:
- `\b`: 边界标记,确保我们只匹配整个电话号码,不是电话号码的一部分。
- `(0[1-9]\d{2}-\d{7,8})`: 匹配以0开头的区号,后面跟着两位数字,然后是连字符 `-`,再接着是一串七到八位数字。
- `\d`: 匹配任意数字。
运行这段代码,你会得到一个包含所有电话号码的列表:
```bash
['0535-1234567', '010-12345678', '025-87654321']
```
用正则表达式判断手机号码是否为11位数字
可以使用以下正则表达式来判断手机号是否为11位数字:
```python
import re
phone_number = "12345678901" # 假设这是要判断的手机号
pattern = r'^\d{11}$'
if re.match(pattern, phone_number):
print("手机号格式正确")
else:
print("手机号格式错误")
```
解释一下上面的正则表达式:
- `^` 表示匹配字符串开头
- `\d` 表示匹配任意数字
- `{11}` 表示匹配前面的表达式11次
- `$` 表示匹配字符串结尾
因此,`^\d{11}$` 表示匹配一个11位数字的字符串。如果要判断其他位数的手机号码,只需要将 `{11}` 改成相应的数字即可。
阅读全文